博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Q23:从上往下打印二叉树
阅读量:4070 次
发布时间:2019-05-25

本文共 649 字,大约阅读时间需要 2 分钟。

Q:从上往下打印出二叉树的每个节点,同层按从左到右的顺序打印。

这里其实就是我们经常见的树的层次遍历。所以我们不禁想到要借助队列了。具体的过程如下:

1)将树的根结点入队

2)若队列不空,则取出队列的队首元素pfront(出队),打印其内容

3)若pfront的左孩子不为空,则其左孩子入队,若其右孩子不空,则其右孩子入队(注意这两个判断是并列关系,不是if ,else关系)

4)返回2)继续

void VisitTreeLevelOrder( BinaryTreeNode *pRoot){	if(NULL == pRoot)		return;	BinaryTreeNode *pVisit = pRoot;	deque
dequeTreeNode; dequeTreeNode.push_back(pVisit); while (!dequeTreeNode.empty()) { BinaryTreeNode *pNode; pNode = dequeTreeNode.front(); cout << pNode->m_nValue; if (pNode->m_pLeft) dequeTreeNode.push_back(pNode->m_pLeft); if(pNode->m_pRight) dequeTreeNode.push_back(pNode->m_pRight); dequeTreeNode.pop_front(); }}

转载地址:http://erlji.baihongyu.com/

你可能感兴趣的文章
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>
慢慢欣赏linux CPU占用率学习
查看>>
Homebrew指令集
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
React Native(二):属性、状态
查看>>
JSX使用总结
查看>>
React Native(四):布局(使用Flexbox)
查看>>
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
adb command not found
查看>>
Xcode 启动页面禁用和显示
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>