【面试题】判断一棵二叉树是否是完全二叉树
来源:互联网 发布:知乎怎么用 编辑:程序博客网 时间:2024/06/08 12:29
判断一棵树是否是完全二叉树,这道题是层序遍历二叉树的升级版,其实运用的知识就是层序遍历。
我们先来回顾一下如何层序遍历一棵二叉树
二叉树的结构:
template<class T>struct BinaryTreeNode{ T _data; BinaryTreeNode<T>* _left; BinaryTreeNode<T>* _right; BinaryTreeNode(const T& x) :_data(x) , _left(NULL) , _right(NULL){}};
层序遍历二叉树
void LevelOrder()//层序 队列 { queue<Node*> q; if (_root) { q.push(_root); } while (!q.empty()) { Node* front = q.front(); cout << front->_data << " ";//取对头数据 q.pop(); if (front->_left) q.push(front->_left); if (front->_right) { q.push(front->_right); } } cout << endl; }
下面来看如何运用层序判断是不是完全二叉树。
怎么理解什么是完全二叉树呢?
类似于(a)图中的二叉树就是完全二叉树,类似于(b)图中的二叉树就是非完全二叉树。
bool Complete(Node* root) { queue<Node*> q; Node* cur = NULL; if (root) q.push(root); while (cur = q.pop() != NULL) { q.push(cur->_left); q.push(cur->_right); } while (!q.empty()) { cur = q.pop(); if (cur != NULL) { return false; } } return true; }
我们举例来理解一下上述代码
有一颗二叉树如下:
分析如下:
阅读全文
1 0
- /***/二叉树经典面试题之判断一棵二叉树是否是完全二叉树
- 【面试题】判断一棵二叉树是否是完全二叉树
- 数据结构面试题/判断一棵树是否是完全二叉树
- 判断一棵二叉树是否是完全二叉树
- 判断一棵二叉树是否是完全二叉树
- 数据结构面试题/判断一棵二叉树是否是平衡二叉树
- 二叉树经典面试题4~判断一棵树是否是完全二叉树
- 二叉树经典面试题4~判断一棵树是否是完全二叉树
- 判断一颗二叉树是否是完全二叉树
- 判断一颗二叉树是否是完全二叉树
- 判断一棵二叉树是否为完全二叉树
- 判断一棵二叉树是否为完全二叉树
- 判断一棵二叉树是否为完全二叉树
- 如何判断一棵二叉树是否是完全二叉树
- 8-32 判断一棵二叉树是否是完全二叉树
- 判断一棵二叉树是否是完全二叉树的方法
- 判断一棵树是否是完全二叉树【每日一题】
- 如何判断一棵二叉树是完全二叉树
- 各类MQ比较
- springframework Request method 'GET' not supported
- hibernate与spring整合:配置事务之后并不会滚的问题
- ubutu搭建pptp
- KMP字符串模式匹配算法实现
- 【面试题】判断一棵二叉树是否是完全二叉树
- A
- jvm--gc垃圾收集(1)
- Linux的各文件目录作用
- VMware vSphere Web Services SDK编程指南(二)-Java 开发设置
- [SAM] Spoj1811 LCS
- spring线程池ThreadPoolTaskExecutor与阻塞队列BlockingQueue
- CSS--基础知识
- Hibernate注解详解