这题我的做法是将二叉树合成到第一颗树上,只需要将同一位置的值合并然后把节点赋值给上一节点的左右指针就行
class Solution {
public:
TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
if(root1 == nullptr && root2 == nullptr) //如果说root1和root2都是nullptr,那么直接返回nullptr即可
return nullptr;
if(root1 == nullptr) //root1上是空的,直接返回root2
{
return root2;
}
if(root2 == nullptr) //root2是空的,直接返回root1
{
return root1;
}
root1->val += root2->val; //合并值
root1->left = mergeTrees(root1->left, root2->left); //合并左子树
root1->right = mergeTrees(root1->right, root2->right); //合并右子树
return root1;
}
};