File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
binary-tree-level-order-traversal Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ """
2
+ ์ฃผ์ด์ง ์ด์ง ํธ๋ฆฌ๋ฅผ ์์์ ์๋๋ก, ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ ๋ฒจ ๋จ์๋ก ์ํํ์ฌ
3
+ ๊ฐ ๋ ๋ฒจ์ ์๋ ๋
ธ๋๋ค์ ๊ฐ์ ๋ฆฌํดํ๋ ๋ฌธ์
4
+
5
+ TC: O(N), ๋ชจ๋ ๋
ธ๋๋ฅผ ํ ๋ฒ์ฉ ๋ฐฉ๋ฌธ
6
+ SC: O(N), ํ์ ๊ฒฐ๊ณผ ๋ฆฌ์คํธ์ ์ต๋ N๊ฐ์ ๋
ธ๋ ์ ์ฅ ๊ฐ๋ฅ
7
+ """
8
+
9
+ # Definition for a binary tree node.
10
+ class TreeNode :
11
+ def __init__ (self , val = 0 , left = None , right = None ):
12
+ self .val = val
13
+ self .left = left
14
+ self .right = right
15
+
16
+ from collections import deque
17
+ from typing import Optional , List
18
+
19
+ class Solution :
20
+ def levelOrder (self , root : Optional [TreeNode ]) -> List [List [int ]]:
21
+ if not root :
22
+ return []
23
+
24
+ output = []
25
+ queue = deque ([root ])
26
+
27
+ while queue :
28
+ # ํ์ฌ ๋ ๋ฒจ์ ์๋ ๋ชจ๋ ๋
ธ๋๋ค์ ๊ฐ์ ๋ฆฌ์คํธ์ ๋ด๊ธฐ
29
+ level = [node .val for node in queue ]
30
+ output .append (level )
31
+
32
+ # ํ์ฌ ๋ ๋ฒจ์ ์๋ ๋ชจ๋ ๋
ธ๋ ํ์
33
+ for _ in range (len (queue )):
34
+ node = queue .popleft ()
35
+ if node .left :
36
+ queue .append (node .left )
37
+ if node .right :
38
+ queue .append (node .right )
39
+
40
+ return output
You canโt perform that action at this time.
0 commit comments