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;
}
}

相似题目

参考资料

最新文章

  1. 自定义一个字母Button
  2. MVC5+EF6 入门完整教程十
  3. dotnet core 初试两个小问题解决
  4. daterangepicker 日期范围插件自定义 可选 年份
  5. 信号之sleep函数
  6. SQLite 对中文路径的支持(用到了StringToWideChar和Utf8Encode在D7的System单元中自带)
  7. java NIO 资料总结
  8. 枚举,Enum,常规使用demo记录
  9. Oracle - 找不到原因的无效字符
  10. UDP的崛起
  11. IDEA 安装scala插件
  12. 自定义工作流活动报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。
  13. vuex的使用及持久化state的方式
  14. (二十四)mongodb中group的问题二
  15. 为什么目前无法再docker for windows中调用GPU
  16. 目前的.NET(C#)世界里,主流的ORM框架
  17. struts2简单入门-执行流程
  18. 剑指offer 07:斐波那契数列
  19. Android 开发 将window变暗
  20. 如何发布自己的node模块

热门文章

  1. Dubbo源码分析:Serialization
  2. 微信硬件平台(十) 1 ESP8266通过mqtt交互消息
  3. 2019-2020-1 20199302《Linux内核原理与分析》第十一周作业
  4. BZOJ 4103: [Thu Summer Camp 2015]异或运算 可持久化trie
  5. vue-cli3整体迁移至服务端渲染nuxtjs
  6. 【AtCoder】 ARC 103
  7. 如何在IDEA上配置Maven
  8. java excel给单元格增加批注(包含SXSSF)
  9. 通过OpenSSL来生成PEM格式的私钥、PKCS8格式的私钥、公钥|pfx格式的私钥、cer格式的公钥
  10. Java多个线程顺序打印数字