Skip to content

Commit 070dab3

Browse files
committed
binary-tree-level-order-traversal solution (py)
1 parent 02e02e5 commit 070dab3

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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

0 commit comments

Comments
ย (0)