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

判断是不是完全二叉树

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

全部评论

相关推荐

07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
06-12 16:00
天津大学 Java
牛客30236098...:腾讯坏事做尽,终面挂是最破防的 上次被挂了后我连简历都不刷了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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