剑指offer:往上到下打印二叉树(java)
来源:互联网 发布:我的手机淘宝没有社区 编辑:程序博客网 时间:2024/06/06 14:05
题目:从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印。
例如输入二叉树:
8
/ \
6 10
/\ /\
5 7 9 11
则一次打印出8,6,10,5,7,9
打印过程如下:先打印根结点,为了接下来能够打印8的结点的两个子结点,我们应该在遍历到该结点时把值为6和10的两个结点保存到一个容器中,现在容器内就有两个结点了。按照从左到右打印的要求,我们先取出值为6的结点。打印出6后把它的值分别为5和7的两个结点放入数据容器。此时数据容器中有三个结点,值分别为10,5,7.接下来我们从数据容器中取出值为10的结点。注意到值为10的结点比值为5,7,的结点先放入容器,此时又比这两个结点先取出,这就是我们通常说的先入先出,因此不难看出这个容器应该是一个队列。由于值为5,7,9,11的结点都没有子节点,因此只要依次打印即可。
public <E> void printFromTopToBottom(BinaryTreeNode root){ if(root == null) return; Queue<BinaryTreeNode> queue = new LinkedList<BinaryTreeNode>(); queue.add(root); while(!queue.isEmpty()){ BinaryTreeNode node = queue.poll(); System.out.print(node.value+","); if(node.leftNode != null) queue.add(node.leftNode); if(node.rightNode != null) queue.add(node.rightNode); } }
0 0
- 剑指offer:往上到下打印二叉树(java)
- java面试题(剑指offer):之字形打印二叉树
- 剑指offer----从上到下打印二叉树----java实现
- 剑指offer----把二叉树打印成多行----java实现
- 剑指offer-----按之字形顺序打印二叉树(java版)
- 剑指offer-----多行打印二叉树(java版)
- 剑指Offer面试题23(Java版):从上往下打印二叉树
- JAVA实现从上往下打印二叉树(《剑指offer》)
- 剑指Offer面试题23(Java版):从上往下打印二叉树
- 剑指offer面试题60 把二叉树打印成多行(Java实现)
- 剑指offer面试题61 按之字形顺序打印二叉树(java实现)
- java面试题(剑指offer):按层打印二叉树
- 剑指 offer:从上到下打印二叉树(层序遍历)
- 剑指offer(24):从上往下打印二叉树
- 剑指offer(62):之字形打印二叉树
- 剑指offer(63):多行打印二叉树
- 剑指offer(19)-从上往下打印二叉树
- 剑指offer(56)-按之字形顺序打印二叉树
- HDU 5823 color 状压DP
- Cocos2d-x3.8.1网络编程(HTTP)
- Binary Watch
- 感知哈希算法——找出相似的图片
- twig模板引擎
- 剑指offer:往上到下打印二叉树(java)
- 我的Direct3D之路1:旅途的开始
- java冒泡排序
- 程序设计框架图和框架加载流程
- 数据结构_线段树_基础模板
- Android SO文件保护OLLVM混淆加固——混淆篇(二)
- jQuery选择器
- 【selenium 2.0 python 自动化测试】简介及前期准备
- javascript对象属性命名“”增添的特殊情况