17. 合併兩個排序的鏈表

題目描述

輸入兩個遞增排列的鏈表,合併這兩個鏈表並新鏈表中的結點仍然是按照遞增排列的。

解析

用遞歸的方法,修改鏈表的指針域。

實現

ListNode* Merge(ListNode* pHead1, ListNode* pHead2){
    if (pHead1 == NULL)
        return pHead2;
    if (pHead2 == NULL)
        return pHead1;

    ListNode* pMergeHead = NULL;
    if (pHead1->m_nValue < pHead2->m_nValue){
        pMergeHead = pHead1;
        pMergeHead->m_pNext = Merge(pHead1->m_pNext, pHead2);
    }
    else{
        pMergeHead = pHead2;
        pMergeHead->m_pNext = Merge(pHead1, pHead2->m_pNext);
    }
    return pMergeHead;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章