剑指offer----从上往下打印二叉树
来源:互联网 发布:淘宝如何销售农产品 编辑:程序博客网 时间:2024/06/05 17:24
package offer;/** * 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 */import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class PrintTopToBottom { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { //创建一个数组用于返回最后打印出来的值 ArrayList<Integer> list = new ArrayList<Integer>(); //如果方法获取的根节点为null,直接返回空的list if(root == null){ return list; } //创建一个队列 Queue<TreeNode> queue = new LinkedList<TreeNode>(); //将根节点添加进队列之中 /* * 假设给出的树为 * 8 * / \ * 6 10 * / \ / \ * 5 7 9 11 */ //那么此时队列为 --> 8 queue.offer(root); //当队列不为空的时候 while(!queue.isEmpty()){ //将队列头移除并标记为treeNode TreeNode treeNode = queue.poll(); //如果当前节点的左边不为null,就添加进队列 //此时队列为 --> 6 if(treeNode.left != null){ queue.offer(treeNode.left); } //如果当前节点的右边不为null,就添加进队列 //此时队列为 --> 6 10 if(treeNode.right != null){ queue.offer(treeNode.right); } //将当前treeNode代表的值添加进ArrayList之中 list.add(treeNode.val); } /* * 以这个树为例 * 8 * / \ * 6 10 * / \ / \ * 5 7 9 11 * 第几次 队列中的元素 * 1 8 * 2 6 10 * 3 10 5 7 * 4 5 7 9 11 * 5 7 9 11 * 6 9 11 * 7 11 * 8 null * */ return list; }}
0 0
- 剑指offer: 从上往下打印二叉树(树)
- 剑指offer:从上往下打印二叉树
- 剑指offer系列源码-从上往下打印二叉树
- 剑指offer--从上往下打印二叉树
- 剑指Offer之 - 从上往下打印二叉树
- 剑指offer 23 - 从上往下打印二叉树
- 剑指offer之从上往下打印二叉树
- 《剑指offer》之从上往下打印二叉树
- 《剑指offer》从上往下打印二叉树
- 剑指Offer系列---(25)从上往下打印二叉树
- 剑指offer—从上往下打印二叉树
- 剑指Offer-23-从上往下打印二叉树
- 剑指offer:从上往下打印二叉树
- 《剑指offer》——从上往下打印二叉树
- 剑指offer-从上往下打印二叉树
- 剑指offer 22 从上往下打印二叉树
- 【剑指offer系列】 从上往下打印二叉树___23
- 剑指offer面试题 从上往下打印二叉树
- 使用Redis存储Nginx+Tomcat负载均衡集群的Session
- 贪心算法-最大不相交区间数问题
- 快速排序
- ajax中什么时候进success和error
- 创建view的两种方式
- 剑指offer----从上往下打印二叉树
- mex.h在哪里?
- 数据结构-归并排序-自顶向下
- 产品经理(一)概况
- SDOI2017滚粗记
- 第七周课堂学习
- 环境变量的作用附加一些配置java环境时的注意点
- Android Studio自定义组件时被继承的类红线提示需要导入V7包的widget组件
- 《python运维自动化》-备份目录