import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param t1 TreeNode类
* @param t2 TreeNode类
* @return TreeNode类
*/
public TreeNode mergeTrees (TreeNode t1, TreeNode t2) {
// write code here
TreeNode dummy = new TreeNode(0);
dummy.left = t1;
voidmerge(t1, t2);
return dummy.left;
}
private void voidmerge(TreeNode t1, TreeNode t2) {
if (t1 != null)
//相加节点值
t1.val += t2 != null ? t2.val : 0;
else return;
if (t1.left != null)
//递归
voidmerge(t1.left, t2 == null || t2.left == null ? null : t2.left);
else
//把t2挂到t1上
t1.left = t2 == null || t2.left == null ? null : t2.left;
if (t1.right != null)
//递归
voidmerge(t1.right, t2 == null || t2.right == null ? null : t2.right);
else//把t2挂到t1上
t1.right = t2 == null || t2.right == null ? null : t2.right;
}
}