// 同时遍历两棵树即可
// 递归返回值和参数:返回值就是TreeNode,参数是t1和t2
// 递归终结:如果都为null,返回null;一方为null,返回另一方
// 单层逻辑:合并结果,左侧为左子树合并结果,右侧为右子树合并结果
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param t1 TreeNode类
* @param t2 TreeNode类
* @return TreeNode类
*/
public TreeNode mergeTrees (TreeNode t1, TreeNode t2) {
// 如果t1为空,合并之后就应该是t2
if (t1 == null) {
return t2;
}
// 如果t2为空,合并之后为t1
if (t2 == null) {
return t1;
}
// 修改t1的数值和结构
t1.val = t1.val + t2.val;
t1.left = mergeTrees(t1.left, t2.left);
t1.right = mergeTrees(t1.right, t2.right);
return t1;
}
}