判断二叉树是否是完全二叉树

Posted yingpu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断二叉树是否是完全二叉树相关的知识,希望对你有一定的参考价值。

boolean isCompleteTreeNode(TreeNode root){
        if(root == null){
            return false;
        }
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        queue.add(root);
        boolean result = true;
        boolean hasNoChild = false;
        while(!queue.isEmpty()){
            TreeNode current = queue.remove();
            if(hasNoChild){
                if(current.left!=null||current.right!=null){
                    result = false;
                    break;
                }
            }else{
                if(current.left!=null&&current.right!=null){
                    queue.add(current.left);
                    queue.add(current.right);
                }else if(current.left!=null&&current.right==null){
                    queue.add(current.left);
                    hasNoChild = true;
                    
                }else if(current.left==null&&current.right!=null){
                    result = false;
                    break;
                }else{
                    hasNoChild = true;
                }
            }
            
        }
        return result;
    }

 

以上是关于判断二叉树是否是完全二叉树的主要内容,如果未能解决你的问题,请参考以下文章

已知一颗二叉链表表示二叉树T ,编写函数,判断T是不是为完全二叉树。先

判断一棵树是否是完全二叉树

二叉树oj ----->判断二叉树是否为完全二叉树

急急~判断一棵二叉树是满二叉树的算法!

二叉树——判断一棵树是否是完全二叉树

NC60 判断一棵二叉树是否为搜索二叉树和完全二叉树