剑指offer之从上往下打印二叉树
来源:互联网 发布:js filereader文件路径 编辑:程序博客网 时间:2024/05/17 05:56
题目:
从上往下打印出二叉树的每一个结点,同一层的结点按照从左到右的顺序打印。例如输入下图的二叉树,则依次打印出8、6、10、5、7、9、11。
分析:
从上到下打印二叉树的规律:每一次打印一个结点的时候,如果该结点有子结点,则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都被打印出来为止。
代码:
void
PrintFromTopToBottom(BinaryTreeNode *pTreeRoot)
{
if
(!pTreeRoot)
return
;
std::deque<BinaryTreeNode*> dequeTreeNode;
dequeTreeNode.push_back(pTreeRoot); //根结点入队
while
(dequeTreeNode.size())
{
BinaryTreeNode *pNode = dequeTreeNode.front();
dequeTreeNode.pop_front(); //出队
printf
(
"%d "
, pNode->m_nValue);
if
(pNode->m_pLeft) //如果有左右孩子结点,则按顺序入队
dequeTreeNode.push_back(pNode->m_pLeft);
if
(pNode->m_pRight)
dequeTreeNode.push_back(pNode->m_pRight);
}
}
0 0
- 剑指Offer之 - 从上往下打印二叉树
- 剑指offer之从上往下打印二叉树
- 《剑指offer》之从上往下打印二叉树
- 剑指offer(三十七)之从上往下打印二叉树
- 剑指offer之十九---从上往下打印二叉树
- 剑指offer: 从上往下打印二叉树(树)
- 剑指offer:从上往下打印二叉树
- 剑指offer系列源码-从上往下打印二叉树
- 剑指offer--从上往下打印二叉树
- 剑指offer 23 - 从上往下打印二叉树
- 《剑指offer》从上往下打印二叉树
- 剑指Offer系列---(25)从上往下打印二叉树
- 剑指offer—从上往下打印二叉树
- 剑指Offer-23-从上往下打印二叉树
- 剑指offer:从上往下打印二叉树
- 《剑指offer》——从上往下打印二叉树
- 剑指offer-从上往下打印二叉树
- 剑指offer 22 从上往下打印二叉树
- Kali Linux Mini Documentation
- 关于iOS7中child viewController 的topLayoutGuide 的length错误的处理
- has a 和use a互相调用 值数据
- 如何下载新东方的在线视频小计-已成功crack
- 排序算法之堆排序Java版
- 剑指offer之从上往下打印二叉树
- 黑马程序员-java基础-总结的几点问题
- 黑马day11 dbcp连接池
- VS调用matlab
- LinearLayout设置 weight 无法绘制的问题
- JavaScript中凼数(定义格式+细节)演示
- ReactNavtive框架教程(2)
- iOS计算文本尺寸
- android四种启动模式