Skip to content

Commit 3a1f373

Browse files
committed
solved: 617
1 parent 0c13668 commit 3a1f373

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

code/617.merge-two-binary-trees.ts

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
class TreeNode {
2+
val: number;
3+
left: TreeNode | null;
4+
right: TreeNode | null;
5+
constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
6+
this.val = val === undefined ? 0 : val;
7+
this.left = left === undefined ? null : left;
8+
this.right = right === undefined ? null : right;
9+
}
10+
}
11+
12+
// @leet start
13+
/**
14+
* Definition for a binary tree node.
15+
* class TreeNode {
16+
* val: number
17+
* left: TreeNode | null
18+
* right: TreeNode | null
19+
* constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
20+
* this.val = (val===undefined ? 0 : val)
21+
* this.left = (left===undefined ? null : left)
22+
* this.right = (right===undefined ? null : right)
23+
* }
24+
* }
25+
*/
26+
27+
function mergeTrees(
28+
root1: TreeNode | null,
29+
root2: TreeNode | null,
30+
): TreeNode | null {
31+
if (root1 == null && root2 == null) return null; // if both the roots are null, return null
32+
if (root1 == null || root2 == null) return root1 ?? root2; // if either of the root is null, return the other root
33+
34+
root1.val += root2.val; // merge the values of the roots
35+
36+
root1.left = mergeTrees(root1.left, root2.left); // recursively merge the left subtrees
37+
root1.right = mergeTrees(root1.right, root2.right); // recursively merge the right subtrees
38+
39+
return root1; // return the merged tree
40+
}
41+
// @leet end
42+

0 commit comments

Comments
 (0)