Invert Binary Tree — Recursive Swap

Sanjeev SharmaSanjeev Sharma
1 min read

Advertisement

Problem 348 · Invert Binary Tree

Difficulty: Easy · Pattern: Recursive DFS

Solutions

// C++
TreeNode* invertTree(TreeNode* root) {
    if (!root) return nullptr;
    swap(root->left, root->right);
    invertTree(root->left); invertTree(root->right);
    return root;
}
// Java
public TreeNode invertTree(TreeNode root) {
    if (root == null) return null;
    TreeNode tmp = root.left;
    root.left = root.right; root.right = tmp;
    invertTree(root.left); invertTree(root.right);
    return root;
}
# Python
def invertTree(root):
    if not root: return None
    root.left, root.right = invertTree(root.right), invertTree(root.left)
    return root

Complexity

  • Time: O(n)
  • Space: O(h)

Advertisement

Sanjeev Sharma

Written by

Sanjeev Sharma

Full Stack Engineer · E-mopro