打印一棵二叉树,要求从上往下打印,每一层从左往右打印
来源:互联网 发布:武汉淘宝摄影 编辑:程序博客网 时间:2024/06/05 10:58
思路:在二叉树的遍历中,用得最多的就是递归,二叉树的先序、中序、后序遍历都可以用递归实现,但是这里却要使用另外一种方式解决。利用队列先入先出的特性,我们先把二叉树每一层的节点按从左往右的顺序加入队列,然后再让队列中的所有节点依次出栈并打印节点值,此时得到的就是所需的结果。代码如下:
import java.util.ArrayList;import java.util.Queue;import java.util.LinkedList;/**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) { ArrayList<Integer> list = new ArrayList<>(); if(root==null){ return list; } Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while(!queue.isEmpty()){ TreeNode node = queue.poll(); list.add(node.val); if(node.left!=null){ queue.offer(node.left); } if(node.right!=null){ queue.offer(node.right); } } return list; }}
0 0
- 打印一棵二叉树,要求从上往下打印,每一层从左往右打印
- 从上往下打印二叉树
- 从上往下分层打印二叉树
- Q23:从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- 从上往下打印二叉树
- Java IO(九):ByteArray
- php curl_init函数用法
- Android基础总结.doc(第七节、多媒体应用、通知、对话框、UI )
- Android基础总结.doc(第六节、Activity组件的启动模式、广播、服务组件 )
- Android基础总结.doc(第八节、Android扩展知识)
- 打印一棵二叉树,要求从上往下打印,每一层从左往右打印
- Android基础总结.doc(第五节、多线程下载、activity声明周期、意图操作)
- ubuntu上安装docker-compose遇到Permission denied问题
- <DATA-轉載>【数据科学】教你成为数据科学“大咖”!
- linux之scp命令
- The Triangle(数塔)
- Java IO(十):Buffered 和 Data
- 数据结构实验之栈六:下一较大值(二)
- Ansi、Unicode与通用类型