File tree Expand file tree Collapse file tree 1 file changed +48
-0
lines changed
binary-tree-level-order-traversal Expand file tree Collapse file tree 1 file changed +48
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for a binary tree node.
3+ * class TreeNode {
4+ * val: number
5+ * left: TreeNode | null
6+ * right: TreeNode | null
7+ * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
8+ * this.val = (val===undefined ? 0 : val)
9+ * this.left = (left===undefined ? null : left)
10+ * this.right = (right===undefined ? null : right)
11+ * }
12+ * }
13+ */
14+ /**
15+ * μ΄μ§νΈλ¦¬ λ 벨 μν νκΈ°
16+ * μκ³ λ¦¬μ¦ λ³΅μ‘λ
17+ * - μκ° λ³΅μ‘λ: O(n)
18+ * - κ³΅κ° λ³΅μ‘λ: O(n)
19+ * @param root
20+ */
21+ function levelOrder ( root : TreeNode | null ) : number [ ] [ ] {
22+ if ( ! root ) return [ ]
23+ let result = [ ]
24+ const queue : TreeNode [ ] = [ root ]
25+
26+ while ( queue . length > 0 ) {
27+ const levelValues : number [ ] = [ ]
28+
29+ // νμ¬ λ 벨μ ν¬κΈ° (νμ¬ νμ μλ νμ¬ λ 벨μ μν λ
Έλμ μ) λ§νΌ μν
30+ for ( let i = 0 ; i < queue . length ; i ++ ) {
31+ const node = queue . shift ( ) !
32+
33+ // νμ¬ λ
Έλμ κ°μ νμ¬ λ 벨μ κ° λ°°μ΄μ μΆκ°
34+ levelValues . push ( node . val )
35+
36+ if ( node . left ) {
37+ queue . push ( node . left ) ;
38+ }
39+ if ( node . right ) {
40+ queue . push ( node . right ) ;
41+ }
42+ }
43+
44+ result . push ( levelValues )
45+ }
46+
47+ return result ;
48+ }
You canβt perform that action at this time.
0 commit comments