从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

例如:
给定二叉树: [3,9,20,null,null,15,7],

3
   / \
  9  20
    /  \
   15   7
返回其层次遍历结果:

[
  [3],
  [9,20],
  [15,7]
]

提示:

节点总数 <= 1000

代码:

/**

* Definition for a binary tree node.

* public class TreeNode {

*     int val;

*     TreeNode left;

*     TreeNode right;

*     TreeNode(int x) { val = x; }

* }

*/

class Solution {

public List<List<Integer>> levelOrder(TreeNode root) {

List<List<Integer>> result = new ArrayList<List<Integer>>();

List<Integer> list = new ArrayList<Integer>();

Deque<TreeNode> deque = new LinkedList<>();

if(root==null)  return result;

TreeNode flag = root;

deque.offer(root);

while(!deque.isEmpty())

{

TreeNode p = deque.poll();

list.add(p.val);

if(p.left!=null)

{

deque.offer(p.left);

}

if(p.right!=null)

{

deque.offer(p.right);

}

if(flag==p)

{

flag = deque.peekLast();

result.add(list);

list = new ArrayList<>();

}

}

return result;

}

}

【剑指offer】面试题32 - II:从上到下打印二叉树 II(Java)相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 剑指offer二十二之从上往下打印二叉树

    一.题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 二.思路 二叉树的层次遍历,可以借助队列实现.具体思路详见注释. 三.代码 import java.util.ArrayList; i ...

  9. 【LeetCode】剑指 Offer 32 - II. 从上到下打印二叉树 II

    [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 文章目录 [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 一.层序遍历 BFS 一. ...

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

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

最新文章

  1. 问题解决——使用CriticalSection后 0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突
  2. MongoDB的下载与安装
  3. html中怎样引入外部字体文件路径,CSS引入外部字体
  4. PHP基础系列之正则表达式(一)
  5. C#(WinForm) + MySQL的中文编码问题(MySQL中文编码的终极解决方案)
  6. Python2和Python3中raw_input( )和input( )区别(附代码)
  7. 远控时其他用户登录到这台计算机,如何远程控制另一台电脑 远程控制另一台电脑方法【详解】...
  8. Android实现自定义曲线截屏,Android实现价格走势自定义曲线图
  9. android db加载后无法读取任何内容_android性能优化(二)之卡顿优化
  10. 人工智能如何改变物联网?
  11. mysql锁的应用场景_浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景
  12. sql 左侧要固定最近一周的周四 怎么写_数据与IT人怎么提高公司地位,避免被业务当工具人?...
  13. python读取word文件内容_[python]读取word文档中的数据,整理成excel表
  14. spring cloud构建java版 b2b2c o2o电子商务云商平台
  15. 快逸报表之在IE打印问题
  16. Android 9.0 TV版导入GMS组件以及Google Play
  17. 什么是TCP/IP协议
  18. 基于node搭建前端服务器,nodejs做微信小程序后端
  19. 教你如何设置让Excel窗口总是在最前面
  20. wx.login 和 wx.getUserProfile 同时使用问题

热门文章

  1. LeetCode 1244. 力扣排行榜(map+multiset)
  2. 程序员面试金典 - 面试题 16.19. 水域大小(BFS/DFS)
  3. python中多层装饰器使用步骤
  4. 行业分析-实战价值方法
  5. 人脸识别 | 你的论文离CVPR , 还有多远?
  6. 论文浅尝 - AAAI2020 | 从异质外部知识库中进行基于图的推理实现常识知识问答...
  7. 新书速递 | 《知识图谱:方法、实践与应用》
  8. 美团大脑 | 知识图谱的建模方法及其应用
  9. 机器学习项目(四)疫情期间网民情绪识别
  10. 看完这篇Linux基本的操作就会了