Skip to content

Commit 2c273b6

Browse files
Jeehay28Jeehay28
authored andcommitted
Add binary-tree-level-order-traversal solution in TS
1 parent da2339e commit 2c273b6

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
class TreeNode {
2+
val: number
3+
left: TreeNode | null
4+
right: TreeNode | null
5+
constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
6+
this.val = (val===undefined ? 0 : val)
7+
this.left = (left===undefined ? null : left)
8+
this.right = (right===undefined ? null : right)
9+
}
10+
}
11+
12+
13+
// TC: O(n)
14+
// SC: O(n)
15+
function levelOrder(root: TreeNode | null): number[][] {
16+
if (!root) return [];
17+
18+
const result: number[][] = [];
19+
const queue: TreeNode[] = [root];
20+
21+
while (queue.length > 0) {
22+
const values: number[] = [];
23+
const level = queue.length;
24+
25+
for (let i = 0; i < level; i++) {
26+
const node = queue.shift()!;
27+
values.push(node.val);
28+
29+
if (node.left) {
30+
queue.push(node.left);
31+
}
32+
33+
if (node.right) {
34+
queue.push(node.right);
35+
}
36+
}
37+
38+
result.push(values);
39+
}
40+
41+
return result;
42+
}

0 commit comments

Comments
 (0)