Skip to content

Commit 4ff3cfa

Browse files
committedSep 30, 2012
Signed-off-by: yuduozhou <[email protected]>
1 parent 7d152e9 commit 4ff3cfa

File tree

3 files changed

+66
-2
lines changed

3 files changed

+66
-2
lines changed
 

‎BSTLevelOrderTraversal.java

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
public class Solution {
2+
public ArrayList<ArrayList<Integer>> levelOrder(TreeNode root) {
3+
// Start typing your Java solution below
4+
// DO NOT write main() function
5+
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
6+
if (root == null) return result;
7+
8+
Queue<TreeNode> nodeQ = new LinkedList<TreeNode>();
9+
TreeNode dummy = new TreeNode(0);
10+
nodeQ.add(root);
11+
nodeQ.add(dummy);
12+
while(nodeQ.size() > 0){
13+
ArrayList<Integer> level = new ArrayList<Integer>();
14+
while(nodeQ.peek() != dummy){
15+
TreeNode temp = nodeQ.poll();
16+
level.add(temp.val);
17+
if (temp.left != null) nodeQ.add(temp.left);
18+
if (temp.right != null) nodeQ.add(temp.right);
19+
}
20+
result.add(level);
21+
if (nodeQ.size() == 1 && nodeQ.peek() == dummy) break;
22+
nodeQ.add(nodeQ.poll());
23+
}
24+
return result;
25+
}
26+
}

‎BSTLevelOrderZigZag.java

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/**
2+
* Definition for binary tree
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode(int x) { val = x; }
8+
* }
9+
*/
10+
public class Solution {
11+
public ArrayList<ArrayList<Integer>> zigzagLevelOrder(TreeNode root) {
12+
// Start typing your Java solution below
13+
// DO NOT write main() function
14+
ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
15+
if (root == null) return result;
16+
17+
boolean backOrder = false;
18+
Queue<TreeNode> nodeQ = new LinkedList<TreeNode>();
19+
TreeNode dummy = new TreeNode(0);
20+
nodeQ.add(root);
21+
nodeQ.add(dummy);
22+
while(nodeQ.size() > 0){
23+
ArrayList<Integer> level = new ArrayList<Integer>();
24+
while(nodeQ.peek() != dummy){
25+
TreeNode temp = nodeQ.poll();
26+
level.add(temp.val);
27+
if (temp.left != null) nodeQ.add(temp.left);
28+
if (temp.right != null) nodeQ.add(temp.right);
29+
}
30+
if (backOrder){
31+
Collections.reverse(level);
32+
}
33+
result.add(level);
34+
backOrder = !backOrder;
35+
if (nodeQ.size() == 1 && nodeQ.peek() == dummy) break;
36+
nodeQ.add(nodeQ.poll());
37+
}
38+
return result;
39+
}
40+
}

‎README

-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ Visiting here too often is not recommended.
33
Thanks to Google, heartfire.cc, and mostly 1337code.
44

55
Unfinished ones:
6-
Binary Tree Level Order Traversal
7-
Binary Tree Zigzag Level Order Traversal
86
Sudoku solver
97
Text Justification
108
Wildcard Matching (Can't pass the large test)

0 commit comments

Comments
 (0)
Please sign in to comment.