one line of code at a time

[leetcode] 199. Binary Tree Right Side View 파이썬 코드 본문

leetcode

[leetcode] 199. Binary Tree Right Side View 파이썬 코드

oloc 2024. 8. 5. 20:27

이진트리에서 맨 오른쪽에 있는 노드의 값만 리턴하는 문제이다.

https://leetcode.com/problems/binary-tree-right-side-view/description/

 

 

각 레벨에서 맨 오른쪽에 있는 노드들인 것을 알 수 있다.

BFS로 레벨 순회를 하면서 맨 마지막 인덱스의 값(val)을 배열에 넣어줄 것이다.

 

class Solution(object):
    def rightSideView(self, root):
        result = []

        if not root:
            return result

        queue = [root]
        while queue:
            level = len(queue)
            
            for i in range(level):
                cnode = queue.pop(0)
                if i == level - 1:
                    result.append(cnode.val)
                    
                if cnode.left:
                    queue.append(cnode.left)
                    
                if cnode.right:
                    queue.append(cnode.right)
                    
        return result