•
문제 설명 : 제공된 트리를 수직으로 뒤집어 반환한다.
•
풀이 방법
◦
최상단부터 내려오면서, 좌우 노드를 swap 해주면된다.
◦
swap시, swap된 노드의 기존 하위 left/right 트리는 유지되기 때문에, 바꿔도 하위 트리에 대한 영향은 없다.
•
시간복잡도 :
•
성공 코드
# 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]:
def swap_node(node):
if not node.left and not node.right:
return
node.left, node.right = node.right, node.left
if node.left:
swap_node(node.left)
if node.right:
swap_node(node.right)
if root:
swap_node(root)
return root
Python
복사