新建结点进行合并
/**
* 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);
}
};