# Merge Binary Trees

![](https://3743232000-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHW2IQuh2PFpWJDvBz2FF%2Fuploads%2Fgit-blob-36162817fc3e9c70741222157ce27b311512772d%2FScreenshot%202023-01-22%20at%2021.47.15.png?alt=media)

* n, h

```jsx
// This is an input class. Do not edit.
class BinaryTree {
  constructor(value) {
    this.value = value;
    this.left = null;
    this.right = null;
  }
}

exports.BinaryTree = BinaryTree;

function mergeBinaryTrees(tree1, tree2) {
  
  return mergeHelper(tree1, tree2)
}

function mergeHelper(tree1, tree2) {
  if (tree1 === null && tree2 === null) {
    return null;
  }

  if (tree1 === null) {
    return tree2;
  }

  if (tree2 === null) {
    return tree1;
  }

  tree1.value += tree2.value;
  const left = mergeHelper(tree1.left, tree2.left);
  const right = mergeHelper(tree1.right, tree2.right);

  tree1.left = left;
  tree1.right = right;

  return tree1;
}

// Do not edit the line below.
exports.mergeBinaryTrees = mergeBinaryTrees;
```
