用递归的方式把t2加到t1上,返回t1值即可。
class Solution {
public:
TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
if (t1 == NULL)
if (t2 == NULL) return 0;
else return t2;
else if (t2 == NULL) return t1;
else t1->val = t1->val + t2->val;
t1->left = mergeTrees(t1->left, t2->left);
t1->right = mergeTrees(t1->right, t2 -> right);
return t1;
}
};规范版:
class Solution {
public:
TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) {
if (!t1) return t2;
if (!t2) 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;
}
};
本文介绍了一种使用递归方式将两棵二叉树进行融合的算法实现,具体包括两种不同风格的C++代码实现。当两棵树都有相同节点时,它们的值相加;当只有其中一棵树有节点时,则保留该节点。
1248

被折叠的 条评论
为什么被折叠?



