package com.example.leetcode;
/**
* @description:
* 617. 合并二叉树
* 给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
*
* 你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。
*
* 示例 1:
*
* 输入:
* Tree 1 Tree 2
* 1 2
* / /
* 3 2 1 3
* /
* 5 4 7
* 输出:
* 合并后的树:
* 3
* /
* 4 5
* /
* 5 4 7
* 注意: 合并必须从两个树的根节点开始。
*
* 通过次数139,233提交次数176,859
*
* @author: licm
* @create: 2021-04-20 09:51
**/
public class Lc617_合并二叉树 {
/**
* dfs 我使用前序遍历
* @param root1
* @param root2
* @return
*/
public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
if(root1 == null ){
return root2;
}
if(root2 == null ){
return root1;
}
root1.left = mergeTrees(root1.left,root2.left);
root1.val+=root2.val;
root1.right = mergeTrees(root1.right,root2.right);
return root1;
}
}