题解 | #合并二叉树#
合并二叉树
http://www.nowcoder.com/practice/7298353c24cc42e3bd5f0e0bd3d1d759
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*
* C语言声明定义全局变量请加上static,防止重复定义
*/
/**
*
* @param t1 TreeNode类
* @param t2 TreeNode类
* @return TreeNode类
*/
struct TreeNode* mergeTrees(struct TreeNode* t1, struct TreeNode* t2 ) {
// write code here
//如果t1是空,t2不是空,则要传回t2
if(t1==NULL && t2!=NULL){
return t2;
}
//如果t1不是空,t2是空,传回t1
if(t1!=NULL && t2==NULL){
return t1;
}
//如果两个都是空,传回t1即可
if(t1==NULL&& t2==NULL){
return t1;
}
//排除以上三种情况后,t1.t2都有值,则t2的值加到t1上
t1->val+=t2->val;
//递归处理t1的左与t2的左,t1的右与t2的右
t1->left=mergeTrees(t1->left,t2->left);
t1->right=mergeTrees(t1->right, t2->right);
//最终返回的是t1,因为我们把值加到t1上
return t1;
}