【LeetCode】剑指 Offer 32 - III. 从上到下打印二叉树 III
【LeetCode】剑指 Offer 32 - III. 从上到下打印二叉树 III
文章目录
- 【LeetCode】剑指 Offer 32 - III. 从上到下打印二叉树 III
package offer;import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;//定义树节点
class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(){};TreeNode(int x){val = x;}
}public class Solution32 {public static void main(String[] args) {TreeNode node1 = new TreeNode(3);TreeNode node2 = new TreeNode(9);TreeNode node3 = new TreeNode(20);TreeNode node4 = new TreeNode(15);TreeNode node5 = new TreeNode(7);node1.left = node2;node1.right = node3;node3.left = node4;node3.right = node5;Solution32 solution = new Solution32();System.out.println(solution.method(node1));}private List<List<Integer>> method(TreeNode root){List<List<Integer>> res = new ArrayList<>();Deque<TreeNode> deque = new LinkedList<>();if (root != null) deque.addFirst(root);List<Integer> temp = new ArrayList<>();TreeNode node = new TreeNode();while(!deque.isEmpty()){temp = new ArrayList<>();for(int i = deque.size(); i > 0; i--){//从左向右打印node = deque.removeFirst();temp.add(node.val);if(node.left != null) deque.addLast(node.left);if(node.right != null) deque.addLast(node.right);}res.add(temp);//如果没有下一层了,则提前跳出if(deque.isEmpty()) break;temp = new ArrayList<>();for(int i = deque.size(); i > 0; i--){//从右向左打印node = deque.removeLast();temp.add(node.val);if(node.right != null) deque.addFirst(node.right);if(node.left != null) deque.addFirst(node.left);}res.add(temp);}return res;}
}//时间复杂度为 O(n)
//空间复杂度为 O(n)
【LeetCode】剑指 Offer 32 - III. 从上到下打印二叉树 III相关推荐
- 【LeetCode】剑指 Offer 32 - II. 从上到下打印二叉树 II
[LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 文章目录 [LeetCode]剑指 Offer 32 - II. 从上到下打印二叉树 II 一.层序遍历 BFS 一. ...
- 【简洁+注释】剑指 Offer 32 - II. 从上到下打印二叉树 II
立志用最少的代码做最高效的表达 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果 ...
- 【简洁写法】剑指 Offer 32 - I. 从上到下打印二叉树
立志用最少的代码做最高效的表达 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回: [3,9,20,1 ...
- 剑指 Offer 32 - I. 从上到下打印二叉树
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3/ \9 20/ \15 7 返回: [3,9,20,1 ...
- 剑指 Offer 32 - II. 从上到下打印二叉树 II
2020-06-22 1.题目描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 2.题解 广度优先搜索,即层次遍历即可 3.代码 /*** Definition fo ...
- JZ32变形~剑指 Offer 32 - II. 从上到下打印二叉树 II
放假不学习/上班,学习不放假.放假当然是不能学习或工作啦
- 剑指 Offer 32 - I. 从上到下打印二叉树(Java迭代法实现)
给定二叉树: [3,9,20,null,null,15,7] 找下规律, 发现队列可以实现层次遍历, 比如根节点3先入队,再将队列的第一个节点出队,并将出队的左右子节点(不为空)入队,直到队列为空. ...
- LeetCode-剑指 Offer 32 - I. 从上到下打印二叉树
剑指 Offer 32 - I. 从上到下打印二叉树 思路一:BFS广度优先遍历 1: 定义一个res返回值 2:定义一个队列,先把头节点压入队列 3:while循环判断队列是否为空不为空进入循环 4 ...
- 剑指offer之分行从上到下打印二叉树
1 题目 分行从上到下打印二叉树 23 5 1 4 2 3 我们打印如下 23 51 4 2 3 2 分析 之前这篇博客写了通过队列按层打印剑指offer之按层打印树节点 现在无非就是还要按照条件打印 ...
- Python剑指offer:分行从上到下打印二叉树
从上到下按层打印二叉树,同一层的节点按照从左到右 的顺序打印,每一层打印到第一行,例如本题中上一个问题的二叉树 输出形式会是: 8 6 10 5 7 9 11 这道题和前面一道题十分类似,也可以用一个 ...
最新文章
- iOS 本地时间与GMT时间相互转换
- Python 用smtplib库发邮件报错:[WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法
- PHP输出毫秒时间戳
- 一些关于毫米波技术的文献
- 别做码农了,去做一名工程师
- 一个x86平台的spi flash驱动移植笔记
- [Troubleshooting]-Outlook预定Lync预定会议显示乱码与残留号码
- AngularJS-webapp($q)
- bzoj 2427: [HAOI2010]软件安装(Trajan+树形DP)
- 【字符串替换】程序员面试金典——1.5基本字符串压缩
- qmessagebox 设置显示屏幕中间_windows7屏幕分辨率设置
- python调用接口获取文件_Python中做接口自动化如何读取配置ini文件
- IDEA中自动导包快捷键
- 【P01】双运放非反相放大器和失调处置
- esxi安装系统ndows,ESXI 安装 Windows Server 2012过程
- 虚拟网络之Kubernetes Cilium CNI 快速部署实操
- java 走马灯程序_微信小程序实现简单跑马灯效果
- 条码支付互联互通介绍
- NLU(Natural Language Understanding)太难了
- 【Windows】win10任务栏图标空白的解决方案
热门文章
- 用Visual Studio 2008编写Win32汇编程序
- nightwatch系列教程03——开发者指南:运行你的测试脚本
- package.json和bower的参数解释
- lintcode-137-克隆图
- 2016年百度面试题
- VXLAN 概念(Part II)- 每天5分钟玩转 OpenStack(109)
- 一起啃PRML - 1.2.2 Expectations and covariances 期望和协方差
- CFileDialog常见用法
- Spring Cloud Config统一管理微服务配置
- tomcat有集成mysql嘛_jira+tomcat+mysql的集成