美文网首页
958. 二叉树的完全性检验

958. 二叉树的完全性检验

作者: 编程小王子AAA | 来源:发表于2020-08-19 21:37 被阅读0次

    判断是否是完全二叉树

    给定一个二叉树,确定它是否是一个完全二叉树。

    百度百科中对完全二叉树的定义如下:

    若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~ 2h 个节点。)

    示例 1:

    image.png

    输入:[1,2,3,4,5,6]
    输出:true
    解释:最后一层前的每一层都是满的(即,结点值为 {1} 和 {2,3} 的两层),且最后一层中的所有结点({4,5,6})都尽可能地向左。
    示例 2:

    image.png

    输入:[1,2,3,4,5,null,7]
    输出:false
    解释:值为 7 的结点没有尽可能靠向左侧。


    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public boolean isCompleteTree(TreeNode root) {
            Queue<TreeNode> queue = new LinkedList<>();
            TreeNode prev = root;
            queue.add(root);
            while (!queue.isEmpty()) {
                TreeNode node = queue.remove();
                if (prev == null && node != null)
                    return false;
                if (node != null) {
                    queue.add(node.left);
                    queue.add(node.right);
                }
                prev = node;
            }
            return true;
        }
    }
    

    相关文章

      网友评论

          本文标题:958. 二叉树的完全性检验

          本文链接:https://www.haomeiwen.com/subject/vgrzdktx.html