【刷题之路】完全二叉树判断

原创 2016年05月31日 20:12:54

完全二叉树被要求除最后一层外,之前的层必须是满二叉树,且在最后一层中,节点都应该集中在左边。

所以按照按层遍历的方法,来遍历整棵二叉树

class CheckCompletion {

public:
    bool chk(TreeNode* root) {
        // write code here
        queue<TreeNode*> temp;
        TreeNode* cur;
        temp.push(root);
        while(!temp.empty()){
            cur=temp.front();
            temp.pop();
            if(cur->left==NULL&&cur->right!=NULL) return false; //如果某一节点只有右孩子,直接返回false
            if(cur->left) temp.push(cur->left);  //否则,将左子树和右子树加入队列
            if(cur->right) temp.push(cur->right);
            if(cur->left==NULL || cur->right==NULL) break;  //如果左右子树有一个为空,说明要么,达到了最后一层,要么,达到倒数第二层最后有孩子的节点,也就是所有的节点已经被加入队列了,否则,这就不是一颗完全二叉树
        }
         while(!temp.empty()){ //继续遍历后面的节点
             cur=temp.front();
             temp.pop();
             if(cur->left!=NULL || cur->right!=NULL) return false; //如果后面的节点仍然有孩子节点,说明这不是一颗完全二叉树
         }
        return true; 
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

判断一棵树是否是完全二叉树【每日一题】

完全二叉树的定义:对二叉树按照从上到下、从左到右的层次遍历,应该满足一下两条要求: ●某节点没有左孩子,则一定无右孩子 ●若某节点缺左或右孩子,则其所有后继一定无孩子 不满足上述任何一条,均不为...

判断一棵树是否是完全二叉树和求二叉树中两个节点的最近公共祖先——题集(十三)

判断一棵树是否是完全二叉树和求二叉树中两个节点的最近公共祖先——题集(十三) 今天来分享一下,如何判断一棵树是否是完全二叉树和求二叉树中两个节点的最近公共祖先的代码实现和运行示例。 判断一棵树是否是完...

完全二叉树

  • 2015年07月06日 11:28
  • 3KB
  • 下载

判断完全二叉树

判断完全二叉树   #include #include #define OVERFLOW 0; #define ERROR O; #define OK 1; typedef char TElemT...

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

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

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

满二叉树:在一棵二叉树中,所有分支结点都存在左、右子树,并且所有叶子节点都在同一层上。 完全二叉树:与满二叉树的前N个结点的结构相同的二叉树。 如何判断一个一棵树是不是完全二叉树呢? 采用广...

【Java实现】判断一棵树是否为BST,一棵树是否为完全二叉树

给定一个二叉树,判断它是不是二叉搜索树。 思路:对于一棵二叉树,最简单的方法就是中序遍历,看是不是一个递增数列,如果是,则是一棵二叉搜索树,如果不是,则不是二叉搜索树。在这里用一个lastVisit去...

完全二叉树的判断

完全二叉树(Complete Binary Tree):若设二叉树的深度为h,除第h层外,其他各层(1~h-1)的节点数都达到最大个数,第h层所有的节点都连续集中在最左边,这就是完全二叉树。完全二叉树...

C++算法之 判断是否为完全二叉树

判断完全二叉树: 完全二叉树,除最后一层外,每一层上的节点树都达到了最大值;在最后一层上只缺少右边的若干节点! 算法思路: 按层次(从上到下,从左到右)遍历二叉树,当遇到一个节点的左子树为空时,...

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

【题目】 有一棵二叉树,请设计一个算法判断它是否是完全二叉树。 给定二叉树的根结点root,请返回一个bool值代表它是否为完全二叉树。树的结点个数小于等于500。 【分析】完全二叉树树...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【刷题之路】完全二叉树判断
举报原因:
原因补充:

(最多只允许输入30个字)