1、从上往下打印出二叉树的每个节点,同层节点从左至右打印
来源:互联网 发布:mysql默认安装地址 编辑:程序博客网 时间:2024/05/16 04:53
问题描述:传入根节点,从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解决思路:使用一个队列存放节点。先将根节点加入到队列中,然后循环遍历队列中的元素,遍历过程中,访问该节点的左右子节点,再将左右子节点加入到队列中。
public class Solution { public ArrayList<TreeNode> PrintFromTopToBottom(TreeNode root) { //创建一个列表用来存储节点 ArrayList<TreeNode> treeList=new ArrayList<TreeNode>(); if(root==null){//没有节点 return null; } //1、先存入根节点 treeList.add(root); //2、循环遍历列表,一开始列表中只有根节点,因此size==1 for(int i=0;i<treeList.size();i++){ TreeNode node= treeList.get(i); //3、如果左子节点不为空,则将左子节点加入到列表中,这时列表的size加1 if(node.left!=null){ treeList.add(node.left); } //3、如果右子节点不为空,则将右子节点加入到列表中,这时列表的size加1 if(node.right!=null){ treeList.add(node.right); }//4、因为执行上面操作后会增加列表的size,因此可以继续循环下一个节点,直到循环完所有节点 } return treeList; } }
如图所示二叉树:
1、首先将根节点加入到list中,因此此时list中数据为:
1
2、循环遍历列表:list.size = 1,i=0时获取到节点1,因为节点1有左子节点2,因此将左子节点2加入到list中,此时list.size = 2
12
3、因为节点1有右子节点3,因此将右子节点3加入到list中,此时list.size=3
123
4、因为list.size=3,因此可以进行下一次循环,i=1,获取到节点2,因为节点2有左子节点4,因此将左子节点4加入到list中,此时list.size=4
1234
5、因为节点2有子右节点5,因此将右子节点5加入到list中,此时list.size=5
12345
6、继续循环遍历list,i=2,获取到节点3,因为节点3没有子节点,因此继续循环遍历list,因为节点4、5均没有子节点,因此遍历完成。
阅读全文
0 0
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 1、从上往下打印出二叉树的每个节点,同层节点从左至右打印
- C++从上往下打印出二叉树的每个节点,同层节点从左至右打印(牛客剑指offer)
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 java
- java 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 19.从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- java实现从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 剑指offer-07-从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 剑指offer:从上往下打印出二叉树的每个节点,同层节点从左至右打印
- 剑指offer-从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- (树的层序遍历)从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 剑指offer java编程——从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 使用两个栈(stack)实现一个队列(queue)
- SpringBootCLI安装
- WM size work flow
- 2017年工作感悟及总结
- 转换一个xml格式的字符串到json格式
- 1、从上往下打印出二叉树的每个节点,同层节点从左至右打印
- __bridges、__block、typedef
- listview条目中imageview设置方法
- python多线程爬取糗事百科 案例 爬取结果保存json
- oracle保留字在mybatis的使用注意
- renderscript basic information
- 欢迎使用CSDN-markdown编辑器
- Quartz定时任务+spring 实现
- 深度学习[ 李宏毅&吴恩达 &张志华译伊恩·古德费洛深度学习]笔记