Skip to content

Commit e79bc51

Browse files
committed
solve: Binary Tree Level Order Traversal
1 parent e59c219 commit e79bc51

File tree

2 files changed

+47
-2
lines changed

2 files changed

+47
-2
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
"""
2+
Constraints:
3+
- The number of nodes in the tree is in the range [0, 2000].
4+
- -1000 <= Node.val <= 1000
5+
6+
Time Complexity: O(n)
7+
- 각 노드를 한 번씩만 방문함
8+
9+
Space Complexity: O(n)
10+
- 결과 리스트는 모든 노드의 값을 저장함
11+
12+
풀이방법:
13+
1. queue와 BFS를 활용하여 레벨 순서로 노드를 순회
14+
2. 각 레벨의 노드들을 별도의 리스트로 모아서 결과에 추가
15+
3. 각 노드를 처리할 때 그 노드의 자식들을 큐에 추가하여 다음 레벨로 넘어감
16+
"""
17+
# Definition for a binary tree node.
18+
# class TreeNode:
19+
# def __init__(self, val=0, left=None, right=None):
20+
# self.val = val
21+
# self.left = left
22+
# self.right = right
23+
class Solution:
24+
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
25+
if not root:
26+
return []
27+
28+
result = []
29+
queue = deque([root])
30+
31+
while queue:
32+
level_size = len(queue)
33+
current_level = []
34+
35+
for _ in range(level_size):
36+
node = queue.popleft()
37+
current_level.append(node.val)
38+
39+
if node.left:
40+
queue.append(node.left)
41+
if node.right:
42+
queue.append(node.right)
43+
44+
result.append(current_level)
45+
46+
return result

counting-bits/KwonNayeon.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ def countBits(self, n: int) -> List[int]:
2424
for i in range(n+1):
2525
ans[i] = self.hammingWeight(i)
2626
return ans
27-
28-
27+
2928
def hammingWeight(self, n: int) -> int:
3029
count = 0
3130
while n:

0 commit comments

Comments
 (0)