【剑指offer】从上往下打印二叉树
来源:互联网 发布:node sass下载失败 编辑:程序博客网 时间:2024/06/05 09:55
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路
以下图为例
先从根节点8开始打印,为了打印8节点的两个子结点,在遍历到该节点时把6和10两个结点保存到容器中,然后取出6的结点打印,此时把6的两个子结点5 7保存到容器中,这时容器中有(10,5,7),接下来取出10的结点打印,把10的两个子结点9 11放入容器中,此时容器中有(5 7 9 11)
它们都没有子结点,依次把它们取出打印。通过观察上述过程可以发现,这是个广度优先遍历过程,需要用到的数据结构是队列。
注释 广度优先遍历过程是把起始结点放入队列中,然后每一部先取出队列头部结点,遍历这个节点后把从它能到达的所有结点都放入队列中,重复这个过程,直到队列为空。
代码
import java.util.ArrayList;/**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<Integer>(); if (root == null) return list; ArrayList<TreeNode> queue = new ArrayList<TreeNode>(); queue.add(root); while (queue.size() != 0){ TreeNode temp = queue.remove(0); if (temp.left != null) queue.add(temp.left); if (temp.right != null) queue.add(temp.right); list.add(temp.val); } 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面试题 从上往下打印二叉树
- 使用Jetson TX2为Raspberry Pi3编译Qt5.9
- Systemtap系统诊断工具
- 过滤器
- DispatcherServlet
- Java系列之字符串
- 【剑指offer】从上往下打印二叉树
- 【深度学习框架Caffe学习与应用】第一课 Opencv安装
- 快速排序
- mysql主从复制配置
- LeetCode基础--动态规划
- zookeeper的选主机制的实现过程以及原理
- 每天一个linux命令(28):tar命令
- (4)close后续行为
- 【Linux】基础与命令一