← Back to Leo Academy Masterclass

Problem #226: Invert Binary Tree

Easy Binary Tree General

Intuition & Strategy Breakdown

Recursively swap left and right child subtrees for every node in the binary tree.

Python Solution

class Solution:
    def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
        if not root:
            return None
        
        # Swap children recursively
        root.left, root.right = self.invertTree(root.right), self.invertTree(root.left)
        
        return root

Java Solution

class Solution {
    public TreeNode invertTree(TreeNode root) {
        if (root == null) return null;
        
        TreeNode left = invertTree(root.left);
        TreeNode right = invertTree(root.right);
        
        root.left = right;
        root.right = left;
        
        return root;
    }
}
Watch Interactive Video on Leo Academy Main App