合併兩個排序的鍊錶

2022-03-09 21:48:44 字數 492 閱讀 7853

【題目描述】

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

【解題思路】

當我們得到兩個鍊錶中值較小的頭結點並把它鏈結到已經合併的鍊錶之後,兩個鍊錶剩餘的節點依然是排序的,其後續的處理步驟與上述相同,因此可以考慮遞迴的思路:我們可以定義乙個遞迴函式來實現後續的歸併過程。

一旦輸入空的鍊錶就會引入空的指標,因此我們需要對空鍊錶單獨處理。當第乙個鍊錶是空鍊錶,也就是它的頭節點是乙個空指標時,那麼把它和第二個鍊錶合併,合併之後的結果就是第二個鍊錶;當第二個鍊錶是空鍊錶,把它和第乙個鍊錶合併,合併之後的結果是第乙個鍊錶。

【**實現】

1/*2

struct listnode 8};

*/9class

solution else

2630

31return

pmergehead;

3233

}34 };

合併兩個排序鍊錶

struct listnode class solution else while pstart1 null pstart2 null plast next pstart1 plast pend1 pend1 pend1 next pstart1 pend1 else plast next psta...

合併兩個排序鍊錶

描述 將兩個排序鍊錶合併為乙個新的排序鍊錶樣例 給出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。解題思路 遍歷第二個鍊錶的每乙個節點,然後與第乙個節點的第乙個節點比較,如果第二個鍊錶節點的值小於第乙個,就插入到第乙個煉表裡,如果大於就到下乙個節點。...