原题
LeetCode 617. 合并二叉树
思路
- 合并树也就是合并节点。
- 若两个节点都为空,则输出空;若一个为空,则直接输出另一个;若两个都不为空,则将值直接相加,同时将左右子树合并,再输出节点。
代码
class Solution {
public:
TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {
if (root1 == nullptr && root2 == nullptr) return nullptr;
else if (root1 == nullptr) return root2;
else if (root2 == nullptr) return root1;
TreeNode* root = new TreeNode(root1->val + root2->val);
root->left = mergeTrees(root1->left, root2->left);
root->right = mergeTrees(root1->right, root2->right);
return root;
}
};
运行截图

收获