← Trees

Invert Binary Tree

Easy
Python
def invert_tree(root):
    if not root: return None
    root.left,root.right=invert_tree(root.right),invert_tree(root.left)
    return root
Java
public TreeNode invertTree(TreeNode root){
    if(root==null) return null;
    TreeNode tmp=root.left;
    root.left=invertTree(root.right);
    root.right=tmp;
    return root;
}

Key Insight

Simultaneous assignment swaps without temp. Java needs temp variable.

Python → Java Differences

  • Simultaneous swap vs temp variable
  • 'not root' vs null check
  • Same recursive approach
Python
def invert_tree(root):
    if not root: return None
    root.left,root.right=invert_tree(root.right),invert_tree(root.left)
    return root
Java
public TreeNode invertTree(TreeNode root){
    if(root==null) return null;
    TreeNode tmp=root.left;
    root.left=invertTree(root.right);
    root.right=tmp;
    return root;
}

Algorithm Steps

1. Recursively invert
2. Swap children