剑指offer二十二之从上往下打印二叉树
一、题目
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
二、思路
二叉树的层次遍历,可以借助队列实现。具体思路详见注释。
三、代码
import java.util.ArrayList; 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> arrayList=new ArrayList<Integer>();//新建一个队列,LinkedList实现了Quene接口,可以直接当作队列来用LinkedList<TreeNode> queue = new LinkedList<TreeNode>();TreeNode current; //当前节点if(root!=null){queue.offer(root);//根节点入队列 }while (!queue.isEmpty()) {current = queue.poll(); //取出队列的头节点arrayList.add(current.val);//保存队列的头节点的值if (current.left != null) {queue.offer(current.left); //如果当前节点的左节点不为空,则左节点入队列 }if (current.right != null) {queue.offer(current.right); //如果当前节点的右节点不为空,则右节点入队列 }}return arrayList;} }
View Code
---------------------------------------------------------
参考链接:
转载于:https://www.cnblogs.com/hezhiyao/p/7632001.html
剑指offer二十二之从上往下打印二叉树相关推荐
- 剑指offer——面试题23:从上往下打印二叉树
剑指offer--面试题23:从上往下打印二叉树 Solution1: 典型的BFS算法! 思路一开始没想到,按照书上的思路写的答案... 注意:deque是双向队列,在头尾插入都很快! /* str ...
- 剑指offer(Java实现) 从上往下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 利用队列(链表)辅助实现. 代码实现 import java.util.ArrayList; import java.uti ...
- 剑指offer面试题23:从上到下打印二叉树(树的层序遍历)
题目:从上往下打印出二叉树的每个节点,同一层的结点按照从左往右的顺序打印. 解题思路:二叉树的层序遍历,在打印一个节点的时候,要把他的子节点保存起来打印第一层要把第二层的节点保存起来, 打印第二层要把 ...
- [剑指offer]面试题23:从上往下打印二叉树
面试题23:从上往下打印二叉树 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印.例如输入图4.5中的二叉树,则依次打印出8.6.10.5.7.9.11. 二叉树结点的定义如下 ...
- 剑指Offer - 面试题32 - III. 从上到下打印二叉树 III(BFS,queue+stack)
1. 题目 请实现一个函数按照之字形顺序打印二叉树, 即第一行按照从左到右的顺序打印, 第二层按照从右到左的顺序打印, 第三行再按照从左到右的顺序打印,其他行以此类推. 例如: 给定二叉树: [3,9 ...
- 剑指Offer - 面试题32 - I. 从上到下打印二叉树(按层BFS遍历,queue)
1. 题目 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回: [3,9 ...
- 剑指offer面试题32 - III. 从上到下打印二叉树 III(二叉树)(BFS)
题目描述 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 思路 详见链接 代码 class So ...
- 剑指offer面试题32 - I. 从上到下打印二叉树(二叉树)(BFS)
题目描述 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 思路 详见链接 代码 class Solution:def levelOrder(self, root:TreeNode ...
- 剑指offer面试题32 - II. 从上到下打印二叉树 II(二叉树)(BFS)
题目描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 思路 详见链接 代码 class Solution:def levelOrder(self,root:TreeN ...
- 剑指offer——面试题61:按之字形顺序打印二叉树
剑指offer--面试题61:按之字形顺序打印二叉树 Solution1: 基于上一题的解法,缺点:效率低下! /* struct TreeNode {int val;struct TreeNode ...
最新文章
- ats 5.3.2中的header-rewrite插件调研
- 迷宫问题最短捷径c语言深搜,迷宫问题 C语言实现(深搜)
- COJ1196(Staginner 去爬山)
- Java—System类和Runtime类
- HAproxy负载均衡部署
- 好用到爆!电脑必装软件清单,四款软件工具,一个都绝不能少!让你的电脑瞬间开挂!
- html5人脸登录,基于HTML5 的人脸识别活体认证
- 计算机财务基础知识,财务部计算机基础知识培训.ppt
- 2019西湖论剑网络安全技能大赛(大学生组)部分WriteUp
- python 调用word打开doc文档报错,“word无法启动转换器mswrd632.wpc”
- 7.用户登陆,用户退出,记住用户名和密码
- 《九日集训》第五天打卡
- python递归函数
- 【论文阅读】【综述】从Optical Flow到Scene Flow
- root cause java.lang.LinkageError: loader constraint violation: loader (instanc
- 美通企业日报 | 2019薪酬增长再放缓;大众将为卡塔尔世界杯提供自动驾驶车辆...
- python英语查询词典-随堂作业
- 生信学习笔记:fastp质控处理生成的report结果解读
- 上海韬源信息技术有限公司怎么样
- 冷补丁和热补丁的区别