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;
相關文章
相關標籤/搜索