728x90
문제
https://leetcode.com/problems/binary-tree-level-order-traversal/
풀이
BFS를 사용해 문제 풀이를 하였다.
같은 깊이의 node들의 val 값을 임시 리스트에 저장하고 이를 결과 리스트에 추가하였다.
코드
from collections import deque
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def BFS(self, root):
result = []
if root:
queue = deque()
queue.append(root)
while queue:
n = len(queue)
tmp = []
for _ in range(n):
node = queue.popleft()
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
tmp.append(node.val)
result.append(tmp)
return result
def levelOrder(self, root):
return self.BFS(root)
728x90
'🚩 코딩테스트 > 알고리즘' 카테고리의 다른 글
[백준] 12100번: 2048 (Easy) (1) | 2022.10.07 |
---|---|
[프로그래머스] 모음 사전 (0) | 2022.09.27 |
[프로그래머스] 소수 찾기 (1) | 2022.09.05 |
[프로그래머스] 모의고사 (1) | 2022.09.05 |
[프로그래머스] 최소직사각형 (0) | 2022.09.05 |