Skip to content

Commit 6f1a70f

Browse files
committed
feat: binary-tree-level-order-traversal
1 parent 8d181d0 commit 6f1a70f

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* <a href="https://leetcode.com/problems/binary-tree-level-order-traversal/">week14-2. binary-tree-level-order-traversal</a>
3+
* <li>Description: Given the root of a binary tree, return the level order traversal of its nodes' values. (i.e., from left to right, level by level)</li>
4+
* <li>Topics: Tree, Breadth-First Search, Binary Tree</li>
5+
* <li>Time Complexity: O(N), Runtime 1ms </li>
6+
* <li>Space Complexity: O(N), Memory 45.3MB </li>
7+
*/
8+
9+
class Solution {
10+
public List<List<Integer>> levelOrder(TreeNode root) {
11+
if (root == null) {
12+
return Collections.emptyList();
13+
}
14+
15+
Queue<TreeNode> queue = new LinkedList<>();
16+
queue.offer(root);
17+
18+
List<List<Integer>> results = new ArrayList<>();
19+
while (!queue.isEmpty()) {
20+
List<Integer> result = new ArrayList<>();
21+
22+
int size = queue.size();
23+
for (int i = 0; i < size; i++) {
24+
TreeNode node = queue.poll();
25+
result.add(node.val);
26+
if (node.left != null) queue.offer(node.left);
27+
if (node.right != null) queue.offer(node.right);
28+
}
29+
results.add(result);
30+
}
31+
32+
return results;
33+
}
34+
}

0 commit comments

Comments
 (0)