解题思路:递归,原题是求两棵树合并成一棵树,可以理解为两颗树上的每个节点都合并,而且题目要求时间复杂度O(N),空间复杂度O(1),所以改题不能创建额外的空间
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) {
// write code here
if (t1 == null) {
return t2;
}
if (t2 == null) {
return t1;
}
if (t1 != null && t2 != null) {
t1.val = t1.val + t2.val;
t1.left = mergeTrees(t1.left, t2.left);
t1.right = mergeTrees(t1.right, t2.right);
}
return t1;
}
}