合併兩個排序鍊錶

2021-07-10 13:30:35 字數 664 閱讀 4152

/*

struct listnode

};*/

class solution else

while(pstart1 != null && pstart2 != null)

plast->next = pstart1;

plast = pend1;

pend1 = pend1->next;

pstart1 = pend1;

}else

plast->next = pstart2;

plast = pend2;

pend2 = pend2->next;

pstart2 = pend2;}}

if(pstart1 == null) else if(pstart2 == null)

return phead;

}};

一般的解法有兩種

乙個通過遞迴來解

再就是通過迴圈還解

以上的是通過迴圈還解的,不過在通用的解法基礎上做了一些改進 

通常是乙個乙個節點的比較,比較之後再取小的乙個合併,如此重複,直至完成,最後把餘下的乙個鍊錶全加進去。

上面的是,一段一段的合併,如果 表1 表頭比表2小,就再往下找下去,直到乙個比表2表頭大的那個,然後把這一段加進去。

合併兩個排序鍊錶

描述 將兩個排序鍊錶合併為乙個新的排序鍊錶樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 將兩個鍊錶當中的對應元素的值進行比較,重新確定新鍊錶當中元素的位置。若第乙個鍊錶當前位置的值小於第二個鍊錶當前值,則不需要改變位置,第乙個鍊錶的指標...

合併兩個排序鍊錶

問題描述 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...

合併兩個排序鍊錶

問題描述 將兩個排序鍊錶合併為乙個新的排序鍊錶 樣例 給出1 3 8 11 15 null,2 null,返回1 2 3 8 11 15 null。實現思路 首先建乙個新鍊錶,新鍊錶的頭結點就是l1或l2中較小的那乙個,若l1中的頭結點是小於l2的,那麼在比較完頭結點之後,再將l1中的下乙個節點與l...