题解 | #判断是不是完全二叉树#

判断是不是完全二叉树

http://www.nowcoder.com/practice/8daa4dff9e36409abba2adbe413d6fae

完全二叉树中编号最大的那个结点,它的编号刚好等于结点数。 alt
比如上图中,编号最大的那个结点为4,同时二叉树中结点个数也为4,则该树完全二叉树。

alt
而上图中编号最大的结点为7,而二叉树中结点个数为6,则该树不是完全二叉树

public class Solution {
    int count = 0; // 记录二叉树中结点个数
    int maxIndex = -1; // 记录最大编号
    public boolean isCompleteTree (TreeNode root) {
        preorder(root, 1);
        return maxIndex == count;
    }
    
    // 这里采用任何一种遍历都行
    private void preorder(TreeNode root, int index){
        if(root == null){
            return;
        }
        count++;
        maxIndex = Math.max(maxIndex, index);
        preorder(root.left, index * 2);
        preorder(root.right, index * 2 + 1);
    }
}
全部评论

相关推荐

积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务