Skip to content

Commit 6755383

Browse files
binary tree level order traversal
1 parent 3a2a095 commit 6755383

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package easy;
2+
3+
import classes.TreeNode;
4+
5+
import java.util.ArrayList;
6+
import java.util.LinkedList;
7+
import java.util.List;
8+
import java.util.Queue;
9+
10+
/**102. Binary Tree Level Order Traversal
11+
12+
Total Accepted: 117221
13+
Total Submissions: 341219
14+
Difficulty: Easy
15+
16+
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
17+
18+
For example:
19+
Given binary tree [3,9,20,null,null,15,7],
20+
21+
3
22+
/ \
23+
9 20
24+
/ \
25+
15 7
26+
27+
return its level order traversal as:
28+
29+
[
30+
[3],
31+
[9,20],
32+
[15,7]
33+
]
34+
*/
35+
public class BinaryTreeLevelOrderTraversal {
36+
//Cheers, easily made it AC'ed on the first submission now, practice does make perfect!
37+
public List<List<Integer>> levelOrder(TreeNode root) {
38+
List<List<Integer>> result = new ArrayList<List<Integer>>();
39+
if(root == null) return result;
40+
41+
Queue<TreeNode> q = new LinkedList<TreeNode>();
42+
q.offer(root);
43+
while(!q.isEmpty()){
44+
List<Integer> thisLevel = new ArrayList<Integer>();
45+
int qSize = q.size();
46+
for(int i = 0; i < qSize; i++){
47+
TreeNode curr = q.poll();
48+
thisLevel.add(curr.val);
49+
if(curr.left != null) q.offer(curr.left);
50+
if(curr.right != null) q.offer(curr.right);
51+
}
52+
result.add(thisLevel);
53+
}
54+
return result;
55+
}
56+
}

0 commit comments

Comments
 (0)