【Leetcode】python - [226] Invert Binary Tree 個人解法筆記

題目出處

226. Invert Binary Tree

難度

easy

個人範例程式碼

# 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 root

        self.invertTree(root.left)
        self.invertTree(root.right)
        root.left, root.right = root.right, root.left

        return root

算法說明

單純的一路一直把左右交換就好,
把題目切分成「更小的子樹,也需做一樣的事情」。

input handling

if not root (None),直接 return root (None)

Boundary conditions

一路 DFS Tree 直到底部,中間過程 swap 「left, right」

Reference

Licensed under CC BY-NC-SA 4.0