File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
binary-tree-level-order-traversal Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * [Problem]: [102] Binary Tree Level Order Traversal
3+ * (https://leetcode.com/problems/binary-tree-level-order-traversal/description/)
4+ */
5+
6+ class TreeNode {
7+ val : number ;
8+ left : TreeNode | null ;
9+ right : TreeNode | null ;
10+ constructor ( val ?: number , left ?: TreeNode | null , right ?: TreeNode | null ) {
11+ this . val = val === undefined ? 0 : val ;
12+ this . left = left === undefined ? null : left ;
13+ this . right = right === undefined ? null : right ;
14+ }
15+ }
16+
17+ // 시간복잡도 O(n)
18+ // 공간복잡도 O(n)
19+ function levelOrder ( root : TreeNode | null ) : number [ ] [ ] {
20+ if ( ! root ) return [ ] ;
21+
22+ const result : number [ ] [ ] = [ ] ;
23+ const queue : TreeNode [ ] = [ root ] ;
24+
25+ while ( queue . length > 0 ) {
26+ const level = queue . length ;
27+ const values : number [ ] = [ ] ;
28+
29+ for ( let i = 0 ; i < level ; i ++ ) {
30+ const node = queue . shift ( ) ! ;
31+ values . push ( node . val ) ;
32+
33+ if ( node . left ) queue . push ( node . left ) ;
34+ if ( node . right ) queue . push ( node . right ) ;
35+ }
36+
37+ result . push ( values ) ;
38+ }
39+
40+ return result ;
41+ }
You can’t perform that action at this time.
0 commit comments