一、题目

  从上往下打印出二叉树的每个节点,同层节点从左至右打印。

二、思路

二叉树的层次遍历,可以借助队列实现。具体思路详见注释。

三、代码

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二十二之从上往下打印二叉树相关推荐

  1. 剑指offer——面试题23:从上往下打印二叉树

    剑指offer--面试题23:从上往下打印二叉树 Solution1: 典型的BFS算法! 思路一开始没想到,按照书上的思路写的答案... 注意:deque是双向队列,在头尾插入都很快! /* str ...

  2. 剑指offer(Java实现) 从上往下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 利用队列(链表)辅助实现. 代码实现 import java.util.ArrayList; import java.uti ...

  3. 剑指offer面试题23:从上到下打印二叉树(树的层序遍历)

    题目:从上往下打印出二叉树的每个节点,同一层的结点按照从左往右的顺序打印. 解题思路:二叉树的层序遍历,在打印一个节点的时候,要把他的子节点保存起来打印第一层要把第二层的节点保存起来, 打印第二层要把 ...

  4. [剑指offer]面试题23:从上往下打印二叉树

    面试题23:从上往下打印二叉树 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印.例如输入图4.5中的二叉树,则依次打印出8.6.10.5.7.9.11. 二叉树结点的定义如下 ...

  5. 剑指Offer - 面试题32 - III. 从上到下打印二叉树 III(BFS,queue+stack)

    1. 题目 请实现一个函数按照之字形顺序打印二叉树, 即第一行按照从左到右的顺序打印, 第二层按照从右到左的顺序打印, 第三行再按照从左到右的顺序打印,其他行以此类推. 例如: 给定二叉树: [3,9 ...

  6. 剑指Offer - 面试题32 - I. 从上到下打印二叉树(按层BFS遍历,queue)

    1. 题目 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回: [3,9 ...

  7. 剑指offer面试题32 - III. 从上到下打印二叉树 III(二叉树)(BFS)

    题目描述 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 思路 详见链接 代码 class So ...

  8. 剑指offer面试题32 - I. 从上到下打印二叉树(二叉树)(BFS)

    题目描述 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 思路 详见链接 代码 class Solution:def levelOrder(self, root:TreeNode ...

  9. 剑指offer面试题32 - II. 从上到下打印二叉树 II(二叉树)(BFS)

    题目描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 思路 详见链接 代码 class Solution:def levelOrder(self,root:TreeN ...

  10. 剑指offer——面试题61:按之字形顺序打印二叉树

    剑指offer--面试题61:按之字形顺序打印二叉树 Solution1: 基于上一题的解法,缺点:效率低下! /* struct TreeNode {int val;struct TreeNode ...

最新文章

  1. ats 5.3.2中的header-rewrite插件调研
  2. 迷宫问题最短捷径c语言深搜,迷宫问题 C语言实现(深搜)
  3. COJ1196(Staginner 去爬山)
  4. Java—System类和Runtime类
  5. HAproxy负载均衡部署
  6. 好用到爆!电脑必装软件清单,四款软件工具,一个都绝不能少!让你的电脑瞬间开挂!
  7. html5人脸登录,基于HTML5 的人脸识别活体认证
  8. 计算机财务基础知识,财务部计算机基础知识培训.ppt
  9. 2019西湖论剑网络安全技能大赛(大学生组)部分WriteUp
  10. python 调用word打开doc文档报错,“word无法启动转换器mswrd632.wpc”
  11. 7.用户登陆,用户退出,记住用户名和密码
  12. 《九日集训》第五天打卡
  13. python递归函数
  14. 【论文阅读】【综述】从Optical Flow到Scene Flow
  15. root cause java.lang.LinkageError: loader constraint violation: loader (instanc
  16. 美通企业日报 | 2019薪酬增长再放缓;大众将为卡塔尔世界杯提供自动驾驶车辆...
  17. python英语查询词典-随堂作业
  18. 生信学习笔记:fastp质控处理生成的report结果解读
  19. 上海韬源信息技术有限公司怎么样
  20. 冷补丁和热补丁的区别

热门文章

  1. 常州模拟赛d4t1 立方体
  2. Python黑魔法,一行实现并行化
  3. 查询DB中每个表占用的空间大小
  4. Extjs不错的博客
  5. 别说我不会玩,我来告诉你iPhone有多烂!iPhone缺点集
  6. 关于Zend framework 里一段代码的疑问
  7. WinXP启动时自动打开上次关机时未关闭的文件夹
  8. routing zuul_尚学堂0131之zuul的相关概念及如何性能调优
  9. 以SYSTEM用户运行CMD
  10. python返回长度值_Python 文件 truncate() 方法(截断返回截取长度)