LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)
2024-10-21 15:48:38
103. 二叉树的锯齿形层次遍历
103. Binary Tree Zigzag Level Order Traversal
题目描述
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
LeetCode103. Binary Tree Zigzag Level Order Traversal中等
例如:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回锯齿形层次遍历如下:
[
[3],
[20,9],
[15,7]
]
Java 实现
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
class Solution {
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
if (root == null) {
return new LinkedList<>();
}
List<List<Integer>> res = new LinkedList<>();
int count = 1;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
int size = queue.size();
List<Integer> list = new LinkedList<>();
for (int i = 0; i < size; i++) {
TreeNode node = queue.poll();
list.add(node.val);
if (node.left != null) {
queue.offer(node.left);
}
if (node.right != null) {
queue.offer(node.right);
}
}
if (count % 2 == 0) {
Collections.reverse(list);
}
count++;
res.add(list);
}
return res;
}
}
相似题目
参考资料
- https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/
- https://leetcode-cn.com/problems/binary-tree-zigzag-level-order-traversal/
最新文章
- 自定义一个字母Button
- MVC5+EF6 入门完整教程十
- dotnet core 初试两个小问题解决
- daterangepicker 日期范围插件自定义 可选 年份
- 信号之sleep函数
- SQLite 对中文路径的支持(用到了StringToWideChar和Utf8Encode在D7的System单元中自带)
- java NIO 资料总结
- 枚举,Enum,常规使用demo记录
- Oracle - 找不到原因的无效字符
- UDP的崛起
- IDEA 安装scala插件
- 自定义工作流活动报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。
- vuex的使用及持久化state的方式
- (二十四)mongodb中group的问题二
- 为什么目前无法再docker for windows中调用GPU
- 目前的.NET(C#)世界里,主流的ORM框架
- struts2简单入门-执行流程
- 剑指offer 07:斐波那契数列
- Android 开发 将window变暗
- 如何发布自己的node模块
热门文章
- Dubbo源码分析:Serialization
- 微信硬件平台(十) 1 ESP8266通过mqtt交互消息
- 2019-2020-1 20199302《Linux内核原理与分析》第十一周作业
- BZOJ 4103: [Thu Summer Camp 2015]异或运算 可持久化trie
- vue-cli3整体迁移至服务端渲染nuxtjs
- 【AtCoder】 ARC 103
- 如何在IDEA上配置Maven
- java excel给单元格增加批注(包含SXSSF)
- 通过OpenSSL来生成PEM格式的私钥、PKCS8格式的私钥、公钥|pfx格式的私钥、cer格式的公钥
- Java多个线程顺序打印数字