题解 | #合并二叉树#

合并二叉树

https://www.nowcoder.com/practice/7298353c24cc42e3bd5f0e0bd3d1d759

双链表同时递归

/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param t1 TreeNode类 
 * @param t2 TreeNode类 
 * @return TreeNode类
 */
//前序遍历基于跟左右
#include <stdlib.h>
//两个同时递归,前序
struct TreeNode* PreS(struct TreeNode* temp1,struct TreeNode* temp2){
    if(temp1==NULL){
        return temp2;
    }
    if(temp2 == NULL){
        return temp1;
    }
    struct TreeNode* temp = (struct TreeNode*)malloc(sizeof(struct TreeNode));
    temp->val = temp1->val+temp2->val;
    temp->left = PreS(temp1->left, temp2->left);
    temp->right = PreS(temp1->right,temp2->right);
    return temp;
}
struct TreeNode* mergeTrees(struct TreeNode* t1, struct TreeNode* t2 ) {
    // write code here
    struct TreeNode* p = t1;
    struct TreeNode* q = t2;
    struct TreeNode* resul = (struct TreeNode*)malloc(sizeof(struct TreeNode));
    resul->left = NULL;
    resul->right = NULL;
    resul = PreS(p,q);
    return resul;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务