描述
已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。例如:
两颗二叉树是:
思路
同时遍历这两棵树,如果一颗为空就返回另一颗,然后将结点值相加,再依次遍历左右子树便可
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param t1 TreeNode类
* @param t2 TreeNode类
* @return TreeNode类
*/
public TreeNode dfs(TreeNode t1, TreeNode t2) {
if (t1 == null) {
return t2;
}
if (t2 == null) {
return t1;
}
TreeNode node = new TreeNode(t1.val + t2.val);
node.left = dfs(t1.left, t2.left);
node.right = dfs(t1.right, t2.right);
return node;
}
public TreeNode mergeTrees (TreeNode t1, TreeNode t2) {
return dfs(t1, t2);
}
}