【剑指offer】面试题32 - II:从上到下打印二叉树 II(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 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)相关推荐
- 剑指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——面试题23:从上往下打印二叉树
剑指offer--面试题23:从上往下打印二叉树 Solution1: 典型的BFS算法! 思路一开始没想到,按照书上的思路写的答案... 注意:deque是双向队列,在头尾插入都很快! /* str ...
- [剑指offer]面试题23:从上往下打印二叉树
面试题23:从上往下打印二叉树 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印.例如输入图4.5中的二叉树,则依次打印出8.6.10.5.7.9.11. 二叉树结点的定义如下 ...
- 剑指offer面试题23:从上到下打印二叉树(树的层序遍历)
题目:从上往下打印出二叉树的每个节点,同一层的结点按照从左往右的顺序打印. 解题思路:二叉树的层序遍历,在打印一个节点的时候,要把他的子节点保存起来打印第一层要把第二层的节点保存起来, 打印第二层要把 ...
- 剑指offer二十二之从上往下打印二叉树
一.题目 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 二.思路 二叉树的层次遍历,可以借助队列实现.具体思路详见注释. 三.代码 import java.util.ArrayList; i ...
- 【LeetCode】剑指 Offer 32 - II. 从上到下打印二叉树 II
[LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 文章目录 [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 一.层序遍历 BFS 一. ...
- 剑指offer——面试题61:按之字形顺序打印二叉树
剑指offer--面试题61:按之字形顺序打印二叉树 Solution1: 基于上一题的解法,缺点:效率低下! /* struct TreeNode {int val;struct TreeNode ...
最新文章
- 问题解决——使用CriticalSection后 0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突
- MongoDB的下载与安装
- html中怎样引入外部字体文件路径,CSS引入外部字体
- PHP基础系列之正则表达式(一)
- C#(WinForm) + MySQL的中文编码问题(MySQL中文编码的终极解决方案)
- Python2和Python3中raw_input( )和input( )区别(附代码)
- 远控时其他用户登录到这台计算机,如何远程控制另一台电脑 远程控制另一台电脑方法【详解】...
- Android实现自定义曲线截屏,Android实现价格走势自定义曲线图
- android db加载后无法读取任何内容_android性能优化(二)之卡顿优化
- 人工智能如何改变物联网?
- mysql锁的应用场景_浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景
- sql 左侧要固定最近一周的周四 怎么写_数据与IT人怎么提高公司地位,避免被业务当工具人?...
- python读取word文件内容_[python]读取word文档中的数据,整理成excel表
- spring cloud构建java版 b2b2c o2o电子商务云商平台
- 快逸报表之在IE打印问题
- Android 9.0 TV版导入GMS组件以及Google Play
- 什么是TCP/IP协议
- 基于node搭建前端服务器,nodejs做微信小程序后端
- 教你如何设置让Excel窗口总是在最前面
- wx.login 和 wx.getUserProfile 同时使用问题
热门文章
- LeetCode 1244. 力扣排行榜(map+multiset)
- 程序员面试金典 - 面试题 16.19. 水域大小(BFS/DFS)
- python中多层装饰器使用步骤
- 行业分析-实战价值方法
- 人脸识别 | 你的论文离CVPR , 还有多远?
- 论文浅尝 - AAAI2020 | 从异质外部知识库中进行基于图的推理实现常识知识问答...
- 新书速递 | 《知识图谱:方法、实践与应用》
- 美团大脑 | 知识图谱的建模方法及其应用
- 机器学习项目(四)疫情期间网民情绪识别
- 看完这篇Linux基本的操作就会了