题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
/** * 题目描述 * 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
题目链接:[编程题]按之字形顺序打印二叉树 题目简单描述: 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 思路: 层序遍历该二叉树,将每一层的节点放进一个...Collections.reverse(list); } ret.add(list); } return ret; } 运行结果
题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。...解题思路 设两个栈,s2存放奇数层,s1存放偶数层 遍历s2节点的同时按照左子树、右子树的顺序加入s1, 遍历s1节点的同时按照右子树、左子树的顺序加入s2 参考代码 import java.util.ArrayList
毕竟 打印 和 唤醒 的操作总是在一起的。 Semaphore 我也写了,但是感觉不太适合,毕竟它的作用是用来控制并发线程数的,我直接创建三个 Semaphore 总觉得怪怪的。...方法一中,我是用 parkNanos 阻塞一段时间,然后就继续运行,也算是取巧不用 Thread.Sleep 了吧 方法二 我比较喜欢,思路也是同开头两种,打印完唤醒其他线程。 over!下文见
data; } } public static void levelPrint(Node head){ System.out.println("按层打印结果
概述 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。...---- 思路 首先定义两个堆栈left和right,并定义二维数组ans来存放结果序列,一维数组tmp来存放中间结果。
题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。...方法一 方法和从上往下打印二叉树类似,遍历顺序是从上到下,每一行按照从左到右的顺序进行遍历,但是需要增加一个参数row来标记当前行数,如果是偶数行,则每次将值放入vector的末尾;如果是奇数行,则每次将值插入...,我们可以用两个栈来隔行存储,一个栈中根据“左结点->右结点”的顺序访问另一个栈的栈顶元素,而另一个栈根据“右子树->左子树”的顺序访问另一个栈的栈顶元素,直到两个栈都为空 以如下二叉树为例:...弹出10时,将10放入res,将其子节点按照先右子节点(11),后左子节点(9)的顺序压入s1;然后弹出节点6,同样,将6放入res,并将其右子节点(7)和左子节点(5)压入s1;此时s1中元素为11、...9、7、5; 4、再对s1进行类似操作,可以看出最后一行输出顺序为5、7、9、11,符合题目要求。
按之字形顺序打印二叉树 Desicription 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
NowCoder 题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /** * 请实现一个函数按照之字形打印二叉树...,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。...Solution9.Print(treeNode)) { System.out.println(list); } } /** * 之字形打印二叉树...return */ public ArrayList> Print(TreeNode pRoot) { //arrayLists存储结果...,就把此节点的下一层的左右节点加入队列,并记录下一层要打印的个数 if (temp.left !
CodeSolution 笔记地址:https://damaer.github.io/CodeSolution/ 仓库介绍:刷题仓库:CodeSolution 题目描述 请实现一个函数按照之字形打印二叉树...,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。...每一层处理完之后,将list加入结果集中,然后翻转reverse的值,继续判断list是不是为空,执行第二步循环。
数组排序可以直接使用 sort() 方法,可以对数组按规律排序。 但如果指定一个没有规律的顺序进行排序呢?...未经允许不得转载:w3h5 » 数组按指定顺序排序
参考博客: https://blog.csdn.net/qtvb1987/article/details/42081585
选定版本,直接加注解
总结:这样实现按照顺序返回第一个正常数据。但是执行并没有异步。下一步:如何实现异步呢? 4 实现异步 4.1 subcribeOn 实现异步 修改 service 实现。
线程按顺序输出ABC 实现描述:建立三个线程A、B、C,分别按照顺序输出十次ABC 首先建立一个方法,按照条件进行输出 class PrintABC{ private int index=0; public...allThread.new ThreadA().start(); allThread.new ThreadB().start(); allThread.new ThreadC().start(); } } 结果展示