2014-10-17 65 views
0

我正在查找用於合併兩個已排序的鏈接鏈的模板。對於Java我還是比較新的,這對於用我有限的知識來完成似乎是一項相當具有挑戰性的任務。我理解如何合併排序數組,但是當涉及到鏈表時,我似乎在繪製空白圖。任何幫助你可以給我,不管是實際的代碼還是隻是建議從哪裏開始,將不勝感激。在java中使用鏈接鏈進行合併排序

謝謝你的時間!

+1

你的代碼在哪裏? – 2014-10-17 21:21:03

回答

1

如果兩個鏈表已經排序,那麼將這兩個鏈表合併在一起非常容易。我會告訴你算法,但你需要自己編寫代碼,因爲它看起來像一個學校項目。首先創建一個新的鏈表,然後將新列表的頭部分配爲list1Head和list2Head的最小值,然後您只需走兩個列表,每次選擇兩個列表的當前節點的最小值並追加到如果它被選中,新的創建列表將使當前成爲。下一個。如果其中一個列表沒有更多節點,則將其他列表的其餘部分直接附加到新列表中。完成

+0

+1。應該是直截了當的。 – 2014-10-17 21:41:29

+0

真棒,感謝您的幫助!是的,這確實是爲了上學,然而教練最終給我們發電子郵件說它應該是數組而不是鏈接列表,這將解釋最後一個作業和這個作業之間的巨大差距。無論如何,這將是我得到鏈表時的便利建議!再次感謝! – 2014-10-18 00:05:02

0

難道你不能看每個列表中的第一個元素,並採取最小。這是新列表的開始。從它來自哪個列表的前面,將其刪除。現在再次查看第一個元素,並取最小值,並將其作爲新列表中的第二個元素。然後重複這個過程將兩個列表壓縮在一起。

如果你想避免創建一個新的列表,只要找到最小的,然後看看事物指向和另一個列表的開始,看看哪個更小。如果您還沒有指向較小的指針,則更新指針。然後沖洗並重復。