判断二叉树是否是完全二叉树
2012-03-30 13:21
337 查看
题目:
给出一个二叉树,判断是否是完全二叉树。
分析:我们都知道完全二叉树是指最后一层左边是满的,右边可能慢也不能不满,然后其余层都是满的,根据这个特性,利用层遍历,
如果我们当前遍历到了NULL结点即叶结点,那么后续如果还有非叶结点,就说明是非完全二叉树,所以利用队列,代码比较简单了。
View Code
给出一个二叉树,判断是否是完全二叉树。
分析:我们都知道完全二叉树是指最后一层左边是满的,右边可能慢也不能不满,然后其余层都是满的,根据这个特性,利用层遍历,
如果我们当前遍历到了NULL结点即叶结点,那么后续如果还有非叶结点,就说明是非完全二叉树,所以利用队列,代码比较简单了。
View Code
bool is_completeTree(Node* r) { queue<Node*> q; if(NULL != r) { q.push(r); Node* cur = NULL; bool flag = false; while(!q.empty()) { cur = q.front(); q.pop(); if(cur) { if(flag) return false; q.push(cur->left); q.push(cur->right); } else flag = true; } return true; } return true; }
相关文章推荐
- 第4章第1节练习题10 判断某二叉树是否为完全二叉树
- 【二叉树】层次遍历二叉树以及判断一棵树是否是完全二叉树
- 二叉树经典面试题4~判断一棵树是否是完全二叉树
- 二叉树的链式存储结构 前序 后序 中序 层序遍历操作实现 判断是否完全二叉树
- 编写一个判断二叉树是否为完全二叉树的C语言函数
- 判断二叉树是否为完全二叉树
- 判断一棵树是否是完全二叉树和求二叉树中两个节点的最近公共祖先——题集(十三)
- 判断一颗二叉树是否是完全二叉树
- 判断二叉树是否为完全二叉树
- 二叉树镜像(递归和非递归)+ 判断一棵二叉树是否是平衡二叉树+ 判断一棵树是否为完全二叉树
- 二叉树问题---判断一棵树是否为完全二叉树
- 数据结构——判断二叉树是否为完全二叉树
- 判断一棵二叉树是否为完全二叉树
- 判断一个二叉树是否是完全二叉树
- 判断一棵二叉树是否为完全二叉树
- 二叉树系列问题——判断一棵树是否为完全二叉树
- 刷题之二叉树----判断一棵树是否为完全二叉树
- 判断一个二叉树是否是完全二叉树
- 二叉树面试题—前,中,后序(非递归),判断是否为完全二叉树
- 以二叉链表的方式创建一棵二叉树,并以非递归算法中序输出;计算二叉树的繁茂度,并判断二叉树是否为完全二叉树