File tree 1 file changed +37
-0
lines changed
Lintcode/src/chapter3_binary_tree_and_divide_and_conquer
1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ package chapter3_binary_tree_and_divide_and_conquer ;
2
+
3
+ import java .util .ArrayList ;
4
+ import java .util .LinkedList ;
5
+ import java .util .Queue ;
6
+
7
+ import classes .TreeNode ;
8
+
9
+ public class BinaryTreeLevelOrderTraversal {
10
+
11
+ /**
12
+ * @param root: The root of binary tree.
13
+ * @return: Level order a list of lists of integer
14
+ */
15
+
16
+ //2 mins AC! Cheers!
17
+ public ArrayList <ArrayList <Integer >> levelOrder (TreeNode root ) {
18
+ // write your code here
19
+ ArrayList <ArrayList <Integer >> result = new ArrayList <ArrayList <Integer >>();
20
+ if (root == null ) return result ;
21
+ Queue <TreeNode > q = new LinkedList ();
22
+ q .offer (root );
23
+ while (!q .isEmpty ()){
24
+ int size = q .size ();
25
+ ArrayList <Integer > list = new ArrayList <Integer >();
26
+ for (int i = 0 ; i < size ; i ++){
27
+ TreeNode curr = q .poll ();
28
+ list .add (curr .val );
29
+ if (curr .left != null ) q .offer (curr .left );
30
+ if (curr .right != null ) q .offer (curr .right );
31
+ }
32
+ result .add (list );
33
+ }
34
+ return result ;
35
+ }
36
+
37
+ }
You can’t perform that action at this time.
0 commit comments