Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:淘宝板鞋 编辑:程序博客网 时间:2024/06/07 22:14
Q:
Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).
For example:
Given binary tree {3,9,20,#,#,15,7}
,
3 / \ 9 20 / \ 15 7
return its zigzag level order traversal as:
[ [3], [20,9], [15,7]]
Solution:
Reverse the order on each level.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<List<Integer>> result = new ArrayList<List<Integer>>(); if (root == null) return result; boolean reverse = false; Stack<TreeNode> stack = new Stack<TreeNode>(); stack.push(root); while (!stack.isEmpty()) { List<Integer> list = new ArrayList<Integer>(); Stack<TreeNode> level = new Stack<TreeNode>(); while (!stack.isEmpty()) { TreeNode cur = stack.pop(); list.add(cur.val); if (reverse) { if (cur.right != null) level.push(cur.right); if (cur.left != null) level.push(cur.left); } else { if (cur.left != null) level.push(cur.left); if (cur.right != null) level.push(cur.right); } } reverse = !reverse; stack = level; result.add(list); } return result; }}
0 0
- LeetCode: Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- LeetCode Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- [Leetcode] Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- 【leetcode】Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- [Leetcode]Binary Tree Zigzag Level Order Traversal
- [leetcode]Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal
- 魔兽地图编辑器 简单介绍
- In C how do you redirect stdin/stdout/stderr to files when making an execvp() or similar call?
- 查找描述性弹性域中的value set是在哪里维护的
- 闪电恢复(系统数据快速恢复软件) 软件介绍及软件使用特性
- oracle date类型显示星期
- Binary Tree Zigzag Level Order Traversal
- NYOJ63 小猴子下落 【模拟】
- Java中的递归原理分析
- xcode 中#pragma的使用
- jwplayer 播放hls视频
- linux信号处理(软中断)详细
- Difference between px, dp, dip and sp in Android?
- 毕业这年(五味求职历程)经历这么多后,发现只有时时总结经验教训,多学多想,才有可能真的站在巨人的肩膀上看世界
- 数据库设计中的14个技巧