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

例如:
给定二叉树: [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 int[] levelOrder(TreeNode root) {

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

Queue<TreeNode> queue = new LinkedList<>();

if(root==null)  return new int[]{};

queue.offer(root);

while(!queue.isEmpty())

{

TreeNode p = queue.poll();

list.add(p.val);

if(p.left!=null)

{

queue.offer(p.left);

}

if(p.right!=null)

{

queue.offer(p.right);

}

}

int[] res = new int[list.size()];

for(int i=0; i<res.length; i++) {

res[i] = list.get(i);

}

return res;

}

}

【剑指offer】面试题32 - I:从上到下打印二叉树(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面试题32 - II. 从上到下打印二叉树 II(二叉树)(BFS)

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

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

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

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

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

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

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

  9. 【剑指offer】面试题32:从上到下打印二叉树(java)

    从上往下打印二叉树的每个节点,同一层的节点按照从左到右的顺序打印.例如输入下图的二叉树,则一次打印出8,6,10,5,7,9,11. 思路:利用队列,将左右子树加入队列末尾,取出结点 代码: pack ...

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

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

最新文章

  1. react16 渲染流程
  2. android 图片二维码识别和保存(二)
  3. 选择排序—简单选择排序(Simple Selection Sort)
  4. 第1章python基础语法1
  5. wxWidgets:wxIconizeEvent类用法
  6. ViewController类中得方法和属性的用途
  7. [计算机组成原理] Booth算法 —— 补码一位乘法
  8. ASP.NET Core 2.0 : 二. 开发环境
  9. 暑期训练日志----2018.8.26
  10. 如果我是推荐算法面试官,我会问哪些问题?
  11. Java新职篇:面向对象编程的3个原则是什么?
  12. 论文写作1:论第一篇SCI写作时的降重方法总结
  13. pmp全真模拟题100道(含答案)
  14. 应用程序无法启动,因为应用程序的并行配置不正确 解决方案
  15. 图像处理基础操作一(几何变换、平滑处理、形态学操作)
  16. 【科普】当手机遭遇短信验证码轰炸,这几点尤其要注意
  17. pytorch RuntimeError: size mismatch, m1: [16 x 86016], m2: [25088 x 512] at /opt/conda/conda-bld/pyt
  18. 5种方案实现订单30分钟未支付,则自动取消
  19. 战略规划,要这么做才对!
  20. UVALive Problem 7456 Least Crucial Node——Regionals 2015 :: Asia - Taipei

热门文章

  1. Feature Engineering 特征工程 4. Feature Selection
  2. LeetCode 436. 寻找右区间(二分查找)
  3. LeetCode 748. 最短完整词
  4. 程序员面试金典 - 面试题 08.03. 魔术索引(二分递归)
  5. LeetCode 1354. 多次求和构造目标数组(优先队列+逆向思考)
  6. 数据结构--跳表SkipList
  7. POJ 1007 DNA排序解题
  8. linux java 共享内存_Linux进程间通信之共享内存
  9. 有福利! 好书推荐:从《实用推荐系统》学习寻找用户行为之法
  10. 史上最可爱的关系抽取指南?从一条规则到十个开源项目