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