Invert Binary Tree — Recursive Swap
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