728x90
문제
https://leetcode.com/problems/binary-tree-level-order-traversal/
Binary Tree Level Order Traversal - LeetCode
Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.
leetcode.com
풀이
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 |