1. 程式人生 > >合並兩個排序的鏈表

合並兩個排序的鏈表

list tno 測試用例 大小 listnode 同時 合並 head 代碼

錯誤代碼:

最後兩個if語句的目的是,最後一次叠代,兩個鏈表中剩下的直接連接最後一次比較的數值,同時也是叠代停止的標誌。雖然大if語句中比較大小得到的Node是正確的值,但每次叠代只要pHead2不為NULL都要改變正確的Node值為pHead2的值。

class Solution {
public:
    ListNode* Merge(ListNode* pHead1, ListNode* pHead2)
    {
        ListNode* Node = NULL;
        if(pHead1 != NULL && pHead2 != NULL){
            
if(pHead1->val < pHead2->val){ Node = pHead1; Node->next = Merge(pHead1->next,pHead2); } else{ Node = pHead2; Node->next = Merge(pHead1,pHead2->next); } } if(pHead1 != NULL) Node
= pHead1; if(pHead2 != NULL) Node = pHead2; return Node; } };

測試用例:
{1,3,5},{2,4,6}

對應輸出應該為:

{1,2,3,4,5,6}

你的輸出為:

{2,4,6}

合並兩個排序的鏈表