题目描述
给定两棵树,要求合并它们,如果节点重合则新合并的树的节点为它们之和,否则不变。
思路
简单递归,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;
}