Leetcode 199: 두 갈래 나무의 오른쪽 보기(초상세 해법!!!)

두 갈래 나무를 정해서 오른쪽에 서 있는 것을 상상하고 꼭대기에서 끝까지 순서대로 오른쪽에서 볼 수 있는 노드 값을 되돌려줍니다.
예:
 : [1,2,3,null,5,null,4]
 : [1, 3, 4]
 :

   1            

문제 풀이 사고방식
이 문제는 사실 Leetcode 102: 두 갈래 나무의 차원을 두루 훑어보는 것이다(가장 상세한 해결 방안!!!)문제의 변종, 우리는 나무 전체를 층층이 훑어본 후에 각 층의 마지막 값을 결과에 추가하기만 하면 된다.
class Solution:
    def rightSideView(self, root: TreeNode) -> List[int]:
        if not root:
            return []
        
        q, res = [root], list()
        while q:
            res.append(q[-1].val) # add val
            for _ in range(len(q)):
                node = q.pop(0)
                if node.left:
                    q.append(node.left)
                if node.right:
                    q.append(node.right)

        return res

이 질문의 다른 언어 버전을 GitHub Leetcode에 추가했습니다.
문제가 있으면 여러분이 지적해 주시기 바랍니다!!!

좋은 웹페이지 즐겨찾기