Description
Given the root of a binary tree, invert the tree, and return its root.
Β
Example 1:
 
Input: root = [4,2,7,1,3,6,9] Output: [4,7,2,9,6,3,1]
Example 2:
 
Input: root = [2,1,3] Output: [2,3,1]
Example 3:
Input: root = [] Output: []
Β
Constraints:
- The number of nodes in the tree is in the range [0, 100].
- -100 <= Node.val <= 100
Solution
Python3
# 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 invert(node):
            if not node: return None
 
            left, right = invert(node.left), invert(node.right)
            node.left = right
            node.right = left
 
            return node
        
        return invert(root)