LeetCode103二叉树的锯齿形层次遍历(相关话题:二叉树、层次遍历)
2023-09-11 14:20:01 时间
题目描述
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)
例如:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回锯齿形层次遍历如下:
[
[3],
[20,9],
[15,7]
]
解题思路
首先定义 cnt 来记录层数的奇偶性,然后在每层结点出队时判断一下该层的奇偶性再存入数组
如果是偶数层就正向存储(以 0 为起始层),奇数层则反向存储
每次存储到数组后 cnt++,再将数组放入接收结果的二维数组 ans,最后返回 ans 即可
/**
* 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>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>> ans = new ArrayList<>();
if (root == null) {
return ans;
相关文章
- 【算法】【链表模块】二叉树空间复杂度为O(1)的遍历方法(Morris算法)
- 从上到下打印二叉树1
- 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树
- 【BZOJ1864】[Zjoi2006]三色二叉树 树形DP
- 数据结构 有序树转二叉树 (树的遍历)
- 【数据结构】二叉树——浅谈TOP-K问题
- 二叉树的遍历
- 剑指 Offer 55 - I. 二叉树的深度
- 数据结构 | 红黑树、平衡二叉树旋转、并查集
- LeetCode105之从前序与中序遍历序列构造二叉树(相关话题:前序中序遍历二叉树)
- 106、【树与二叉树】leetcode ——501. 二叉搜索树中的众数:双指针法+哈希表法(C++版本)
- 97、【树与二叉树】leetcode ——513.找树左下角的值:层次遍历+回溯法(C++版本)
- 92、【树与二叉树】leetcode ——111. 二叉树的最小深度:层次遍历+先序DFS+后序DFS[子问题分解](C++版本)
- JLOI 2009 二叉树问题
- 2022&2023华为OD机试 - 二叉树层次遍历(Python)
- 6.2 二叉树遍历
- 已知二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列
- LintCode 二叉树的遍历 (非递归)
- 求二叉树的先序遍历
- 数据结构——二叉树的遍历
- 【leetcode】106: 从中序与后序遍历序列构造二叉树
- [LintCode] Maximum Depth of Binary Tree 二叉树的最大深度
- [LeetCode] 314. Binary Tree Vertical Order Traversal 二叉树的竖直遍历
- [LeetCode] 94. Binary Tree Inorder Traversal 二叉树的中序遍历
- 二叉树解决折纸方向问题
- 堆算法(二叉树创建、遍历)
- leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal 从中序与后序遍历序列构造二叉树(中等)