码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-09-23 01:04:55      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

import java.util.LinkedList;
import java.util.Queue;

public class judgeTree {
    public static boolean judge(TreeNode root){
        if(root == null)
            return true;
        Queue<TreeNode> qu = new LinkedList<TreeNode>();
        qu.add(root);
        TreeNode temp = null;
        int flag = 0;
        while(!qu.isEmpty()){
            temp = qu.peek();
            qu.remove();
            if(temp.left != null && flag == 0)
                qu.add(temp.left);
            else if(temp.left != null)
                return false;
            else
                flag =1;
            
            if(temp.right != null && flag == 0)
                qu.add(temp.right);
            else if(temp.right != null)
                return false;
            else
                flag =1;
        }
        return true;
    }
}

注:网上搜来的解法。层序遍历,设置标志位flag,遇到有null的值就置flag为1,flag不为1且节点的孩子节点不为null,入队,否则(flag为1且节点的孩子节点不为null,即前面有为null的结点,必然不是完全二叉树)返回false,都不满足则置flag为1(表示遇到了null结点)

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

标签:

原文地址:http://www.cnblogs.com/92sunqing/p/4830950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!