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