Binary Tree Level Order Traversal

박수빈·2022년 3월 10일
0

leetcode

목록 보기
39/51

문제

  • 트리의 root이 주어질 때
  • level order 순회 결과를 return
  • left --- right

풀이

  • 트리를 q를 이용해 bfs 로 접근
  • q를 층마다 새로 만들어줘서 이중 반복문으로
from collections import deque
from copy import copy

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
        if root:
            ans = []
            q = deque()
            newQ = deque()
            newQ.append(root)
            while newQ:
                q = copy(newQ)
                newQ.clear()
                li = []
                while q:
                    thisNode = q.popleft()
                    if thisNode.left:
                        newQ.append(thisNode.left)
                    if thisNode.right:
                        newQ.append(thisNode.right)
                    li.append(thisNode.val)
                ans.append(li)
            return ans
                
        else:
            return []

결과

느리지만 뭐..

profile
개발자가 되고 싶은 학부생의 꼼지락 기록

0개의 댓글