程序地带

剑指 Offer-32-III-从上到下打印二叉树 III


在这里插入图片描述


/**
* 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) {
if (root == null)
return new ArrayList<>();
List<List<Integer>> ans = new ArrayList<>();
Queue<TreeNode> q = new LinkedList<>();
//标志位 判断打印顺序
boolean flag = true;
q.offer(root);
while(!q.isEmpty()) {
LinkedList<Integer> temp = new LinkedList<>();
int size = q.size();
for (int i = 0; i < size; i++) {
TreeNode node = q.poll();
if (flag) {
temp.add(node.val);
} else {
temp.addFirst(node.val);
}
if (node.left != null)
q.offer(node.left);
if (node.right != null)
q.offer(node.right);
}
ans.add(temp);
flag = !flag;
}
return ans;
}
}

在这里插入图片描述


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hmyqwe/article/details/111246061

随机推荐

调用微信的收货地址和我的地址功能页面。

在微信小程序里面调用这个功能页面其实很简单,直接在jS里面调用wx.chooseAddress({});详细说明请看官方文档说明:官方文档说明实现效果图&#x...

前端攻城狮路飞 阅读(786)

vue简单入门指令

el:挂载点类似jq&(#id)data:数据源v-text:数据显示类似${msg}简写{{msg}}v-html:拼接标签属性v-on:绑定...

Esacper 阅读(577)

python黑知识:python本体

讲述python的实现本体,版本,构建时间,构建工具和构建参数python的实现有很多种,如果想研究一下它语言本身一些机制的实现,...

debugeeker 阅读(572)

启明云端技术社区之星--张梦玉

社区简介启明云端技术社区致力成为开发者爱好者的交流学习平台,我们希望在这里能助力开发者们用乐鑫、sigmastarSSD20x等硬件方案在8ms平台上开发更多的智能产品,打...

启明云端 阅读(645)

浅谈stm32的三种BOOT模式

一、BOOT模式简单的介绍启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置...

皮卡皮~ 阅读(785)