新建结点进行合并

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param t1 TreeNode类 
     * @param t2 TreeNode类 
     * @return TreeNode类
     */
    TreeNode *Build(TreeNode* root,TreeNode* t1,TreeNode* t2){
        if(t1 == NULL && t2 == NULL)
            return NULL;
        if(root == NULL){
            root = new TreeNode(0);
            root->left = NULL;
            root->right = NULL;
        }
        if(t1 == NULL && t2){
            root->val += t2->val;
            root->left = Build(root->left,t1,t2->left);
            root->right = Build(root->right,t1,t2->right);
        }
        else if(t2 == NULL && t1){
            root->val += t1->val;
            root->left = Build(root->left,t1->left,t2);
            root->right = Build(root->right,t1->right,t2);
        }
        else{
            root->val += t1->val + t2->val;
            root->left = Build(root->left,t1->left,t2->left);
            root->right = Build(root->right,t1->right,t2->right);
        }
        return root;
    }
    TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
        // write code here
        return Build(NULL,t1,t2);
    }
};