【剑指offer】面试题32 - I:从上到下打印二叉树(Java)
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树: [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)相关推荐
- 剑指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——面试题23:从上往下打印二叉树
剑指offer--面试题23:从上往下打印二叉树 Solution1: 典型的BFS算法! 思路一开始没想到,按照书上的思路写的答案... 注意:deque是双向队列,在头尾插入都很快! /* str ...
- [剑指offer]面试题23:从上往下打印二叉树
面试题23:从上往下打印二叉树 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印.例如输入图4.5中的二叉树,则依次打印出8.6.10.5.7.9.11. 二叉树结点的定义如下 ...
- 剑指offer面试题23:从上到下打印二叉树(树的层序遍历)
题目:从上往下打印出二叉树的每个节点,同一层的结点按照从左往右的顺序打印. 解题思路:二叉树的层序遍历,在打印一个节点的时候,要把他的子节点保存起来打印第一层要把第二层的节点保存起来, 打印第二层要把 ...
- 【剑指offer】面试题32:从上到下打印二叉树(java)
从上往下打印二叉树的每个节点,同一层的节点按照从左到右的顺序打印.例如输入下图的二叉树,则一次打印出8,6,10,5,7,9,11. 思路:利用队列,将左右子树加入队列末尾,取出结点 代码: pack ...
- 剑指offer二十二之从上往下打印二叉树
一.题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 二.思路 二叉树的层次遍历,可以借助队列实现.具体思路详见注释. 三.代码 import java.util.ArrayList; i ...
最新文章
- react16 渲染流程
- android 图片二维码识别和保存(二)
- 选择排序—简单选择排序(Simple Selection Sort)
- 第1章python基础语法1
- wxWidgets:wxIconizeEvent类用法
- ViewController类中得方法和属性的用途
- [计算机组成原理] Booth算法 —— 补码一位乘法
- ASP.NET Core 2.0 : 二. 开发环境
- 暑期训练日志----2018.8.26
- 如果我是推荐算法面试官,我会问哪些问题?
- Java新职篇:面向对象编程的3个原则是什么?
- 论文写作1:论第一篇SCI写作时的降重方法总结
- pmp全真模拟题100道(含答案)
- 应用程序无法启动,因为应用程序的并行配置不正确 解决方案
- 图像处理基础操作一(几何变换、平滑处理、形态学操作)
- 【科普】当手机遭遇短信验证码轰炸,这几点尤其要注意
- pytorch RuntimeError: size mismatch, m1: [16 x 86016], m2: [25088 x 512] at /opt/conda/conda-bld/pyt
- 5种方案实现订单30分钟未支付,则自动取消
- 战略规划,要这么做才对!
- UVALive Problem 7456 Least Crucial Node——Regionals 2015 :: Asia - Taipei
热门文章
- Feature Engineering 特征工程 4. Feature Selection
- LeetCode 436. 寻找右区间(二分查找)
- LeetCode 748. 最短完整词
- 程序员面试金典 - 面试题 08.03. 魔术索引(二分递归)
- LeetCode 1354. 多次求和构造目标数组(优先队列+逆向思考)
- 数据结构--跳表SkipList
- POJ 1007 DNA排序解题
- linux java 共享内存_Linux进程间通信之共享内存
- 有福利! 好书推荐:从《实用推荐系统》学习寻找用户行为之法
- 史上最可爱的关系抽取指南?从一条规则到十个开源项目