Skip to content

Commit 17faeca

Browse files
authored
Update 0102-binary-tree-level-order-traversal.js
1 parent b98ee99 commit 17faeca

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

Diff for: javascript/0102-binary-tree-level-order-traversal.js

+8-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/**
22
* https://leetcode.com/problems/binary-tree-level-order-traversal/
3-
* Time O(N) | Space O(W)
3+
* Time O(N) | Space O(N)
4+
* Note that the time complexity is actually O(N^2) if we consider the fact that we use an array as a queue and calling Array.shift() takes O(N)
45
* @param {TreeNode} root
56
* @return {number[][]}
67
*/
@@ -11,12 +12,12 @@ var levelOrder = function(root) {
1112
return bfs([ root ]);
1213
};
1314

14-
const bfs = (queue, levels = []) => {
15-
while (queue.length) {
15+
const bfs = (queue /* Space O(W) */, levels = [] /* Space O(N) */) => {
16+
while (queue.length) { // Time O(N)
1617
const level = [];
1718

1819
for (let i = (queue.length - 1); 0 <= i; i--) {
19-
const node = queue.shift();
20+
const node = queue.shift(); // Time O(N)
2021

2122
if (node.left) queue.push(node.left);
2223
if (node.right) queue.push(node.right);
@@ -32,11 +33,11 @@ const bfs = (queue, levels = []) => {
3233

3334
/**
3435
* https://leetcode.com/problems/binary-tree-level-order-traversal/
35-
* Time O(N) | Space O(H)
36+
* Time O(N) | Space O(N)
3637
* @param {TreeNode} root
3738
* @return {number[]}
3839
*/
39-
var levelOrder = function(root, level = 0, levels = []) {
40+
var levelOrder = function(root, level = 0, levels = [] /* Space O(N) */) {
4041
const isBaseCase = root === null;
4142
if (isBaseCase) return levels;
4243

@@ -45,7 +46,7 @@ const bfs = (queue, levels = []) => {
4546

4647
levels[level].push(root.val);
4748

48-
return dfs(root, level, levels);
49+
return dfs(root, level, levels); // Time O(N) | Space O(H)
4950
}
5051

5152
const dfs = (root, level, levels) => {

0 commit comments

Comments
 (0)