Merge Two Binary Trees — Recursive Overlay

Sanjeev SharmaSanjeev Sharma
1 min read

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

Sanjeev Sharma

Written by

Sanjeev Sharma

Full Stack Engineer · E-mopro