Skip to content

Commit 6a37b83

Browse files
committed
feat: add binary-tree-level-order-traversal solution
1 parent 71be5dd commit 6a37b83

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
from collections import deque
2+
from typing import List, Optional
3+
4+
5+
class TreeNode:
6+
def __init__(self, val=0, left=None, right=None):
7+
self.val = val
8+
self.left = left
9+
self.right = right
10+
11+
12+
class Solution:
13+
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
14+
"""
15+
- Idea: ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)๋ฅผ ์ด์šฉํ•˜์—ฌ ์ด์ง„ ํŠธ๋ฆฌ๋ฅผ ๋‹จ๊ณ„ ๋ณ„๋กœ ์ˆœํšŒํ•œ๋‹ค.
16+
- Time Complexity: O(n). n์€ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ์ˆ˜.
17+
๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํ•œ๋ฒˆ์”ฉ ๋ฐฉ๋ฌธํ•˜๋ฏ€๋กœ O(n) ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.
18+
- Space Complexity: O(n). n์€ ํŠธ๋ฆฌ์˜ ๋…ธ๋“œ ์ˆ˜.
19+
๊ฐ€์žฅ ์•„๋ž˜ ๋‹จ๊ณ„์— ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์ €์žฅํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ด๋Š” n์— ๋น„๋ก€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— O(n) ๋งŒํผ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
20+
"""
21+
if not root:
22+
return []
23+
24+
result = []
25+
queue = deque()
26+
queue.append(root)
27+
28+
while queue:
29+
level = []
30+
31+
for i in range(len(queue)):
32+
node = queue.popleft()
33+
level.append(node.val)
34+
35+
if node.left:
36+
queue.append(node.left)
37+
if node.right:
38+
queue.append(node.right)
39+
40+
result.append(level)
41+
42+
return result

0 commit comments

Comments
ย (0)