leetcode 106: Binary Tree Zigzag Level Order Traversal
2013-03-09 11:56
393 查看
Binary
Tree Zigzag Level Order TraversalSep
29 '12
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
return its zigzag level order traversal as:
confused what
read more on how binary tree is serialized on OJ.
Tree Zigzag Level Order TraversalSep
29 '12
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] ]
confused what
"{1,#,2,3}"means? >
read more on how binary tree is serialized on OJ.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ //{1,2,3,4,5} public class Solution { public ArrayList<ArrayList<Integer>> zigzagLevelOrder(TreeNode root) { // Start typing your Java solution below // DO NOT write main() function ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>(); //input check if(root==null) return res; Queue<TreeNode> q1 = new LinkedList<TreeNode>(); Queue<TreeNode> q2 = new LinkedList<TreeNode>(); q1.offer(root); ArrayList<Integer> level = new ArrayList<Integer>(); int i=0; while( !q1.isEmpty()) { TreeNode n = q1.poll(); level.add(n.val); if(n.left!=null) q2.offer(n.left); if(n.right!=null) q2.offer(n.right); if(q1.isEmpty()){ if((i&1)==0){ res.add(level); } else { Collections.reverse(level); res.add(level); } Queue<TreeNode> temp = q1; q1 = q2; q2 = temp; level = new ArrayList<Integer>(); ++i; } } return res; } }
相关文章推荐
- leetcode 106: Binary Tree Zigzag Level Order Traversal
- Leetcode 103 ,Binary Tree Zigzag Level Order Traversal(二叉树Z形分层遍历)
- leetcode[103]Binary Tree Zigzag Level Order Traversal
- leetcode之Binary Tree Zigzag Level Order Traversal
- Leetcode 103 Binary Tree Zigzag Level Order Traversal
- Leetcode: Binary Tree Zigzag Level Order Traversal
- Java for LeetCode 103 Binary Tree Zigzag Level Order Traversal
- [LeetCode] Binary Tree Zigzag Level Order Traversal
- leetcode:Binary Tree Zigzag Level Order Traversal
- LeetCode 103:Binary Tree Zigzag Level Order Traversal
- leetcode Binary Tree Zigzag Level Order Traversal
- LeetCode | Binary Tree Zigzag Level Order Traversal
- [C++]LeetCode: 101 Binary Tree Zigzag Level Order Traversal
- [leetcode] Binary Tree Zigzag Level Order Traversal
- [LeetCode][Java] Binary Tree Zigzag Level Order Traversal
- [leetcode]Binary Tree Zigzag Level Order Traversal
- LeetCode(103) Binary Tree Zigzag Level Order Traversal
- leetCode(23):Binary Tree Zigzag Level Order Traversal
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- Binary Tree Zigzag Level Order Traversal ---LeetCode