File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
binary-tree-level-order-traversal Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change
1
+ var levelOrder = function ( root ) {
2
+ // Edge case: If root is null, return []
3
+ if ( root === null ) return [ ] ;
4
+
5
+ // Create result and queue
6
+ let result = [ ] ;
7
+ let queue = [ root ] ;
8
+
9
+ // Iterate while queue.length is exist
10
+ while ( queue . length ) {
11
+ // Create levelArr and levelSize
12
+ let levelArr = [ ] ;
13
+ let levelSize = queue . length ;
14
+ // Initiate currentNode from queue by using shift method
15
+ while ( levelSize ) {
16
+ const currentNode = queue . shift ( ) ;
17
+ levelArr . push ( currentNode . val ) ;
18
+ // If currentNode.left is not null, push into the queue
19
+ if ( currentNode . left ) queue . push ( currentNode . left ) ;
20
+ // If currentNode.right is not null, push into the queue
21
+ if ( currentNode . right ) queue . push ( currentNode . right ) ;
22
+
23
+ levelSize -- ;
24
+ }
25
+ // Push levelArr into result
26
+ result . push ( levelArr ) ;
27
+ }
28
+ return result ;
29
+ } ;
30
+
31
+ // TC: O(n)
32
+ // SC: O(n)
You can’t perform that action at this time.
0 commit comments