2025-01-06 13:28
Status: child
Tags: leetcode leetcode-easy trees binary-trees computer-science Leetcode
Invert Binary Tree
Code
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def invertTree(self, root):
"""
:type root: Optional[TreeNode]
:rtype: Optional[TreeNode]
"""
if not root:
return
temp = root.left
root.left = root.right
root.right = temp
self.invertTree(root.left)
self.invertTree(root.right)
return root
Explanation
-
If the root is None, return
-
Set tmp = root.left(you’ll see why)
-
root.left = root.right because we’re inverting the positions
-
root.right = tmp because root.left got overidden
-
Call self.invertTree(root.left) and self.invertTree(root.right)
-
Return root