invert-binary-tree.py (746B)
1 # Definition for a binary tree node. 2 # class TreeNode: 3 # def __init__(self, val=0, left=None, right=None): 4 # self.val = val 5 # self.left = left 6 # self.right = right 7 class Solution: 8 def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]: 9 10 if root is None: 11 return root 12 13 out = recurse(root) 14 return out 15 16 17 def recurse(current): 18 19 assert current is not None 20 21 if current.left is None and current.right is None: 22 return current 23 24 temp = current.right 25 current.right = current.left 26 current.left = temp 27 28 if current.left is not None: 29 recurse(current.left) 30 if current.right is not None: 31 recurse(current.right) 32 return current