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

判断是不是完全二叉树

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;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
尊嘟假嘟点击就送:加v细说,问题很大
点赞 评论 收藏
分享
11-01 20:03
已编辑
门头沟学院 算法工程师
Amazarashi66:这种也是幸存者偏差了,拿不到这个价的才是大多数
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 19:05
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务