21 合併兩個有序鍊錶

2021-10-06 04:41:24 字數 812 閱讀 999

21. 合併兩個有序鍊錶

啞節點建立move游標

啞節點標記了結果鍊錶的開頭,因此是不能移動的。為了把兩個鍊錶merge的結果放到結果鍊錶的最後,就需要使用乙個move游標指向結果鍊錶的最後乙個元素。初始時,move指向啞節點,之和隨著結果鍊錶的增加而不停的往後移動,始終保持其指向結果鍊錶的最後乙個元素。

while 遍歷兩個元素

涉及到兩個元素的遍歷題,使用 while l1 and/or l2 的方式。即兩個元素都沒有遍歷或者至少有乙個沒有遍歷完,具體使用 and 還是 or 要根據場景進行選擇。

這類常見的題目有:

沒用完的元素仍需拼接

當 while 迴圈結束之後,l1 和 l2 至少遍歷完了乙個,另乙個鍊錶可能沒有用完,因此需要拼接到 結果鍊錶 的結尾。

合併鍊錶 或者 兩數相加 都要記得這個問題。

21 合併兩個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 原本想的是用19題的結構陣列那種方法來做 分別遍歷兩個鍊錶,建立結構儲存原始索引,val和指標,氣泡排序這個結構,更新索引,按照索引建立新的n...

21 合併兩個有序鍊錶

合併兩個有序鍊錶 將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4比較簡單,比較大小,重新排序即可。created by hints on 2019 1 9.include using name...

21 合併兩個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4先確定合併鍊錶第乙個節點 在迴圈中同時遍歷兩個鍊錶,將後面其餘節點逐次比較,依大小次序連線到首節點之後,迴圈結束後可能有乙個鍊錶未遍歷完,將這個鍊錶剩...