贴原题:
解析:
本题是给出两个二叉树,让合并成一个二叉树。
那么直接调用递归就可以实现。
贴代码:
/**
* 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)//t1节点为空则返回t2
{
return t2;
}
if(!t2)//t2节点为空则返回t1
{
return t1;
}
if(t1 && t2)//两者都非空则返回则把两者值相加,并递归其左右叶子节点
{
t1->val += t2->val;
t1->left = mergeTrees(t1->left, t2->left);
t1->right = mergeTrees(t1->right, t2->right);
}
return t1;//两者都空情况;返回t1头结点
}