File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed
binary-tree-level-order-traversal Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments