C 解決合併兩個排序的鍊錶問題

2022-09-21 08:39:11 字數 537 閱讀 2576

目錄

輸入兩個遞增的鍊錶,單個鍊錶的長度為n,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。

資料範圍: n為0~1000,節點值為-1000~1000

要求:空間複雜度 o(1),時間複雜度 o(n)

如輸入,時,合併後的鍊錶為,所以對應的輸出為,轉換過程如下圖所示:

或輸入,時,合併後的鍊錶為,所以對應的輸出為,轉換過程如下圖所示:

輸入:,

返回值:

本題考察資料結構鍊錶的使用。有兩種解法:

解法一,遍歷:

/*struct listnode

};*/

class solut程式設計客棧ion

else

cur=cur->next;

}cur->next=phead1?phead1:phead2;

return head->next;}};

解法二,遞迴:

/*struct listnode

};*/

class soluti

else}};

鍊錶問題 合併兩個排序鍊錶

題目 輸入兩個遞增排序的鍊錶,合併這兩個排序鍊錶,使得合併之後的鍊錶仍然使遞增排序的。分析 即是歸併排序中的歸併操作,有兩種具體的實現 1 使用遞迴的方法,2 迭代版本,逐個合併鍊錶。實現如下 struct listnode 遞迴版本 listnode merge listnode phead1,l...

合併兩個排序鍊錶

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。解題思路 將兩個鍊錶當中的對應元素的值進行比較,重新確定新鍊錶當中元素的位置。若第乙個鍊錶當前位置的值小於第二個鍊錶當前值,則不需要改變位置,第乙個鍊錶的指標...