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

判断是不是完全二叉树

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

import java.util.*;

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param root TreeNode类 
     * @return bool布尔型
     */
    public boolean isCompleteTree (TreeNode root) {
        // write code here
       if(root==null||root.left==null&&root.right==null){
        return true;
       }
       //层序遍历,将二叉树遍历到队列中,
    //    如果前面出现空节点那么后面一定都是空节点,
    // 将所有的空节点遍历完在队列不为空的时候,如果又出现非空节点即false
    //    
       // ArrayList<Integer> a = new ArrayList<>();
        Queue<TreeNode> q = new LinkedList<>();
        //此处不能用ArrayDeque,它不能存储null
        q.add(root);
        boolean f = false;//标记是否遇到叶子节点
        while(!q.isEmpty()){
            TreeNode tmp =q.poll();
            if(tmp==null){
                f = true;
                continue;
            }
            if(f){
                //遇到空节点的情况下又遇到非空节点
                return false;
            }
            q.add(tmp.left);
            q.add(tmp.right);
        }
       

        return true;
    }
}

全部评论

相关推荐

09-27 00:29
东北大学 Java
伟大的麻辣烫:查看图片
阿里巴巴稳定性 77人发布 投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
死在JAVA的王小美:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我也是,让我免了一轮,但是硬气拒绝了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务