//第一种情况,两棵都是空树,合并仍为空
//第二种情况,第一棵树为空,第二棵树不为空,那么空的位置就用第二棵树的结点代替
//第三种情况,第一棵树不为空,第二棵树为空,那么没有影响,
//第四种情况,两棵树都不为空,那么就把对应结点的值相加
//            然后递归判断左子树,再递归判断右子树
//注意:因为最后返回t1,所以每次return都是t1的结点

struct TreeNode* mergeTrees(struct TreeNode* t1, struct TreeNode* t2 ) {
    if(t1 == NULL && t2 == NULL) 
        return NULL;
    if(t1 == NULL && t2 != NULL)
        return t2;
    if(t1 != NULL && t2 == NULL)
        return t1;
    t1->val = t1->val + t2->val;
    t1->left = mergeTrees(t1->left, t2->left);
    t1->right = mergeTrees(t1->right, t2->right);
    return t1;
}