leadcode的Hot100系列--617. 合并二叉树

合并,就是两个树的结构交集部分,数据相加,不然,取非空部分。
因此,这里至关因而对两棵树同时遍历:
若是两棵树节点都不为空,则数据相加,
不然,直接指针把不为空的节点复制过来。指针

注:这里没有申请内存,而直接对原有的树进行改造,这样能够节省申请内存的时间,且节省一些内存。code

struct TreeNode* mergeTrees(struct TreeNode* t1, struct TreeNode* t2){
    
    struct TreeNode *pTemp = NULL;
    
    if ((NULL == t1) && (NULL == t2))
        return NULL;
    else if ((NULL != t1) && (NULL != t2))
    {
        pTemp = t1;
        pTemp->val = t1->val + t2->val;
    }
    else if (NULL != t1)
    {
        return t1;
    }
    else if (NULL != t2)
    {
        return t2;
    }
    pTemp->left = mergeTrees(t1->left, t2->left);
    pTemp->right = mergeTrees(t1->right, t2->right);

    return pTemp;
相关文章
相关标签/搜索