Algorithm/릿코드

99클럽 코테 스터디 4일차 226. Invert Binary Tree

Albosa2lol 2024. 6. 3. 06:44

 

 

이진 트리 뒤집기

주어진 이진 트리의 루트 노드가 주어집니다. 트리를 좌우 반전한 트리의 루트 노드를 반환하세요.

 

# 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 invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root:
            return None
        
        # 왼쪽과 오른쪽 자식을 재귀적으로 반전
        left_inverted = self.invertTree(root.left)
        right_inverted = self.invertTree(root.right)
        
        # 현재 노드의 자식을 반전
        root.left, root.right = right_inverted, left_inverted
        
        return root

 

풀이

주어진 이진 트리를 좌우 반전시키는 데 필요한 모든 작업을 재귀적으로 설정했다.

더 이상 탐색할 노드가 없을 때 조건을 설정했다. (root가 None이면 None을 반환)

현재 노드의 왼쪽 자식과 오른쪽 자식을 반전시키고, 현재 노드들의 자식을 반전하였다