File tree 3 files changed +66
-2
lines changed
3 files changed +66
-2
lines changed Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change @@ -3,8 +3,6 @@ Visiting here too often is not recommended.
3
3
Thanks to Google, heartfire.cc, and mostly 1337code.
4
4
5
5
Unfinished ones:
6
- Binary Tree Level Order Traversal
7
- Binary Tree Zigzag Level Order Traversal
8
6
Sudoku solver
9
7
Text Justification
10
8
Wildcard Matching (Can't pass the large test)
You can’t perform that action at this time.
0 commit comments