递归就完事,分成两种情况:
1.两个树在当前位置都有节点,创建一个节点,节点的值是两个树对应位置节点相加,然后左右子树递归
2.存在空节点,返回另外一个节点
代码如下所示:
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param t1 TreeNode类
* @param t2 TreeNode类
* @return TreeNode类
*/
TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
if(t1==NULL){
return t2;
}
if(t2==NULL){
return t1;
}
TreeNode *node=new TreeNode(t1->val+t2->val);
node->left=mergeTrees(t1->left, t2->left);
node->right=mergeTrees(t1->right, t2->right);
return node;
}
};