莆田哪里有网站开发,北京大企业公司排名,开发公司总工岗位职责,同和网站建设给定两个二叉树#xff0c;想象当你将它们中的一个覆盖到另一个上时#xff0c;两个二叉树的一些节点便会重叠。
你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠#xff0c;那么将他们的值相加作为节点合并后的新值#xff0c;否则不为 NULL 的节点将直…给定两个二叉树想象当你将它们中的一个覆盖到另一个上时两个二叉树的一些节点便会重叠。
你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠那么将他们的值相加作为节点合并后的新值否则不为 NULL 的节点将直接作为新二叉树的节点。
示例 1:
输入: Tree 1 Tree 2 1 2 / \ / \ 3 2 1 3 / \ \ 5 4 7 输出: 合并后的树: 3/ \4 5/ \ \ 5 4 7注意: 合并必须从两个树的根节点开始。
代码如下:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:TreeNode* mergeTrees(TreeNode* root1, TreeNode* root2) {if (root1nullptr) return root2;if (root2nullptr) return root1;TreeNode* merge_node new TreeNode(root1-valroot2-val);merge_node-left mergeTrees(root1-left,root2-left);merge_node-right mergeTrees(root1-right,root2-right);return merge_node;}
};