Invert Binary Tree

박수빈·2022년 2월 16일
0

leetcode

목록 보기
23/51


문제

  • binary tree의 root가 주어지면, 트리를 invert해라

풀이

  • 오름차순 -> 내림차순
  • 왼-중-오 -> 오-중-왼
  • recursion으로 들어가면서 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]:
        if root:
            left = root.left
            right= root.right

            root.left = right
            root.right = left

            self.invertTree(root.left)
            self.invertTree(root.right)
        return root

결과

더 간단하게 switching

class Solution:
    def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        if root:
            root.left, root.right = root.right, root.left
            self.invertTree(root.left)
            self.invertTree(root.right)
        return root

이게 훨씬 빠르다!!
python swithing 미쳤다

profile
개발자가 되고 싶은 학부생의 꼼지락 기록

0개의 댓글