이진 트리 뒤집기
주어진 이진 트리의 루트 노드가 주어집니다. 트리를 좌우 반전한 트리의 루트 노드를 반환하세요.
# 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을 반환)
현재 노드의 왼쪽 자식과 오른쪽 자식을 반전시키고, 현재 노드들의 자식을 반전하였다
'Algorithm > 릿코드' 카테고리의 다른 글
99클럽 코테 스터디 8일차 338. counting bits (0) | 2024.06.07 |
---|---|
99클럽 코테 스터디 7일차 1221. Split a String in Balanced Strings (0) | 2024.06.05 |
99클럽 코테 스터디 5일차 104. Maximum Depth of Binary Tree (1) | 2024.06.03 |
99클럽 코테 스터디 3일차 2331. Evaluate Boolean Binary Tree (0) | 2024.06.02 |
99클럽 코테 스터디 2일차 TIL 1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree (0) | 2024.05.31 |