剑指offer-按之字形顺序打印二叉树
题目描述
1 public ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {//树 双向链表 mytip 2 ArrayList<ArrayList<Integer>> re = new ArrayList<>(); 3 LinkedList<TreeNode> queue = new LinkedList<>(); 4 if(null==pRoot){ 5 return re; 6 } 7 queue.add(null); 8 queue.add(pRoot); 9 10 boolean flag = true; 11 while(queue.size()>1){//最后一个为null 12 TreeNode node = queue.poll();//当前不为null时,取出并将孩子结点存入链表 13 if(null==node){//当前为null是将链表中数打印 14 ArrayList<Integer> list = new ArrayList<>(); 15 Iterator<TreeNode> iter = null; 16 if(flag){ 17 iter = queue.iterator();//正向 18 }else{ 19 iter = queue.descendingIterator();//反向 20 } 21 while(iter.hasNext()){ 22 TreeNode n = iter.next(); 23 list.add(n.val); 24 } 25 if(queue.size()>0){ 26 queue.add(null); 27 } 28 re.add(list); 29 flag = !flag; 30 continue;//必须加 31 } 32 if(null!=node.left){ 33 queue.add(node.left); 34 } 35 if(null!=node.right){ 36 queue.add(node.right); 37 } 38 } 39 return re; 40 }
转载于:https://www.cnblogs.com/zhacai/p/10679898.html
剑指offer-按之字形顺序打印二叉树相关推荐
- C#刷剑指Offer | 从上到下打印二叉树
[C#刷题]| 作者 / Edison Zhou 这是EdisonTalk的第288篇原创内容 我们来用之前学到的数据结构知识来刷<剑指Offer>的一些核心题目(精选了其中30+道题目) ...
- 二叉树高度的代码解析_剑指offer 从上到下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解析:这实际上就是二叉树的层序遍历.规律如下:每次打印节点,如果该节点有子节点,则将子节点放入队列末尾,然后取出队列头部最早进入队列的 ...
- 剑指offer 从上往下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解决方案: import java.util.ArrayList; import java.util.ArrayList; impor ...
- 剑指offer 从上到下打印二叉树
思路:采用队列思想,一边进一边出,先进先出,选择双向队列deque(其实queue已经够了,没必要用deque) /* struct TreeNode { int val; struc ...
- 剑指offer——面试题61:按之字形顺序打印二叉树
剑指offer--面试题61:按之字形顺序打印二叉树 Solution1: 基于上一题的解法,缺点:效率低下! /* struct TreeNode {int val;struct TreeNode ...
- 剑指Offer——P32——之字形打印二叉树
请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. package jianzhi_offer; impo ...
- (补充)【打印1到最大的n位数】剑指offer——面试题12:打印1到最大的n位数
剑指offer--面试题12:打印1到最大的n位数 此题在牛客网上没有OnlineJudge,在此补充两种做法. 参考网址:https://blog.csdn.net/yanxiaolx/articl ...
- 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
<LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...
- 《LeetCode力扣练习》剑指 Offer 06. 从尾到头打印链表 Java
<LeetCode力扣练习>剑指 Offer 06. 从尾到头打印链表 Java 一.资源 题目: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回). 示例 1: 输入: ...
- LeetCode Algorithm 剑指 Offer 06. 从尾到头打印链表
剑指 Offer 06. 从尾到头打印链表 Ideas 遍历链表,每次在vector的头部insert当前元素值. Code C++ class Solution {public:vector< ...
最新文章
- bmp文件头_「正点原子FPGA连载」第十九章SD卡读BMP图片LCD显示
- OpenCV | OpenCV:sift,SURF 特征提取
- 我总结的js性能优化的小知识
- tensorflow中张量、常量、变量、占位符
- top.location.href和localtion.href代码剖析
- web实现数据交互的几种常见方式
- kaggle比赛——房价预测
- 三维姿态:关于solvePnP与cvPOSIT
- 浅谈高并发系统性能调优
- kafka基础之核心概念
- World Wind Java开发之六——解析shape文件(转)
- 整理C# 二进制,十进制,十六进制 互转
- Android视频加密
- OOA、OOD、OOP 区别与思想
- 乘风破浪,遇见未来元宇宙(Metaverse)之元宇宙重要基本元素之一,虚拟数字人行业洞察报告及未来趋势
- python处理千万级数据_python实现千万级+点云数据三维坐标球面坐标互转
- 搭建一条区块链需要多少时间和资金
- mysql 启动 spawn错误_supervisor ERROR (spawn error):错误解决
- 用纯CSS3的animation制作雪花飘落、星星闪烁、按钮缩放、图片倾斜
- matlab 稳定系统,matlab分析系统的稳定性
热门文章
- 3pc在mysql的实现_面试官:了解分布式事务?讲讲你理解的2PC和3PC原理
- ORA-02082: 回送数据库链接必须具有连接限定词
- linux 检测远程端口是否打开---nmap命令
- java解析日志数据_Java实时监控日志文件并输出的方法详解
- 重庆邮电大学计算机学院院徽,Slide计算机学院-重庆邮电大学.PPT
- python常考题_Python语言基础考察点:python语言基础常见考题(一)
- led灯条维修_led硅胶线条灯不亮的8大原因,怎样识别led灯带的质量
- 模型部署到移动端_TensorFlow Lite 自然语言处理模型的最新功能,助力设备端 NLP 部署...
- cs架构用什么语言开发_C、C++、Go 语言、Linux服务器开发高级架构师进阶之路
- 内存颗粒和闪存颗粒的区别_浅谈闪存颗粒二三事