题目描述
给定两棵树,要求合并它们,如果节点重合则新合并的树的节点为它们之和,否则不变。
思路
简单递归,c语言怎么创建新节点忘记了,就直接写的。
代码
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
struct TreeNode* mergeTrees(struct TreeNode* t1, struct TreeNode* t2) {
if (!t1) return t2;
if (!t2) return t1;
t1->val += t2->val;
t1->left=mergeTrees(t1->left,t2->left);
t1->right=mergeTrees(t1->right,t2->right);
return t1;
}
本文介绍了一种合并两棵二叉树的算法实现。当两棵树有相同的节点时,新树的节点值等于两个节点值之和;若节点不重合,则保留原有节点。文章通过递归方式实现了这一过程,并提供了C语言的代码示例。
400

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



