LeetCode Binary Tree Zigzag Level Order Traversal
来源:互联网 发布:怎么开淘宝店铺步骤 编辑:程序博客网 时间:2024/06/06 18:22
Description:
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:
和前面一道题目类似,但是java没有内置的将LinkedList倒置的方法,所以选择的是让每次变动指针读取的方向。
import java.util.*;public class Solution {public List<List<Integer>> zigzagLevelOrder(TreeNode root) {List<List<Integer>> list = new ArrayList<List<Integer>>();LinkedList<TreeNode> nodes = new LinkedList<TreeNode>();LinkedList<TreeNode> nextNodes = new LinkedList<TreeNode>();TreeNode node;boolean converse = false;ArrayList<Integer> array = new ArrayList<Integer>();nodes.add(root);while (true) {nextNodes = new LinkedList<TreeNode>();array = new ArrayList<Integer>();while (!nodes.isEmpty()) {if (converse) {node = nodes.pollLast();if (node == null)continue;array.add(node.val);nextNodes.push(node.right);nextNodes.push(node.left);} else {node = nodes.pollFirst();if (node == null)continue;array.add(node.val);nextNodes.add(node.left);nextNodes.add(node.right);}}if (nextNodes.isEmpty())break;list.add(array);nodes = nextNodes;converse = !converse;}System.out.println(list);return list;}}
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
- 【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
- LeetCode:Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- SQL Server游标的使用
- Swift Compiler Error Binary oprator '+' cannot be applied to operands of type 'UInt16' and 'UInt8'
- 设计模式--装饰模式(Decorator)
- hdu 2883 kebab
- 初步探索Log4j
- LeetCode Binary Tree Zigzag Level Order Traversal
- 使用WinDug查内存泄露
- STM32之系统重启
- GraphicsMagick和im4java按比例压缩图片
- 20150706
- C#读写txt文件的两种方法介绍
- windows下如何查看端口占用的程序
- 从ViewRootImpl类分析View绘制的流程
- 欢迎使用CSDN-markdown编辑器