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