Merge Two Binary Trees — Recursive Overlay
Advertisement
Problem 354 · Merge Two Binary Trees
Difficulty: Easy · Pattern: Recursive Overlay
Solutions
# Python
def mergeTrees(root1, root2):
if not root1: return root2
if not root2: return root1
root1.val += root2.val
root1.left = mergeTrees(root1.left, root2.left)
root1.right = mergeTrees(root1.right, root2.right)
return root1
// Java
public TreeNode mergeTrees(TreeNode r1, TreeNode r2) {
if (r1==null) return r2; if (r2==null) return r1;
r1.val+=r2.val;
r1.left=mergeTrees(r1.left,r2.left);
r1.right=mergeTrees(r1.right,r2.right);
return r1;
}
Complexity
- Time: O(min(m,n))
- Space: O(min(h1,h2))
Advertisement