从上往下打印二叉树
来源:互联网 发布:小满软件 垃圾 编辑:程序博客网 时间:2024/05/21 09:14
题:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:请看清楚这道题,同层节点从左至右打印,现有的二叉树的前序、中序、后序遍历都是不满足题目的条件的。 这里可以借助队列来实现,从二叉树的根节点开始,写个循环依次按照从左往右的顺序把节点添加到队列里,一边添加的同时,一边从队列中取队列的第一个节点,取完之后就删除这个节点,直到队列为空,循环结束。由于队列的特性是先进先出,所以可以保住打印的时候是从左至右的。因为循环的结束条件是队列为空,所以不用担心每次循坏只取队列的一个节点是否不够。
代码:
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 Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { if(root == null) return new ArrayList();//判题需要,若返回null,会报空指针 ArrayList<Integer> result = new ArrayList<>(); Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while (!queue.isEmpty()){ TreeNode currentNode = queue.poll(); result.add(currentNode.val); if(currentNode.left != null) queue.offer(currentNode.left); if(currentNode.right != null) queue.offer(currentNode.right); } return result; }}
呕心沥血写出来的,转载请一定注明出处!
阅读全文
0 0
- 从上往下打印二叉树
- 从上往下分层打印二叉树
- Q23:从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- Hadoop集群搭建
- MySQL 字符串转时间
- Eclipse 报错There are no resources that can be added or removed from the server
- 【MySQL】关于MySQL添加索引后提升的查询效率也很少的解决办法
- Biterm Topic Model(BTM)的python 实现
- 从上往下打印二叉树
- $q和promise
- 一个简单的图片上传预览demo
- 持续集成工具jenkins
- 工信部信通院与阿里云合作, 共同提升中国APP质量
- 编译和使用apue.3e源码并实现第一个ls.c程序
- 计算机端口号
- Jquery选中效果
- 【python调用windows CLI】调用adb统计Android app的流量消耗