問題
將兩個升序鍊錶合併為一個新的升序鍊錶並傳回。新鍊錶是透過拼接給定的兩個鍊錶的所有節點組成的。
範例1:
輸入:l1 = [1,2,4], l2 = [1,3,4]
輸出:[1,1,2,3,4,4]
範例二:
##範例3:輸入:l1 = [], l2 = []
輸出:[]
輸入:l1 = [] , l2 = [0]想法#版本一輸出:[0]
- 新建一個空的鍊錶nList
- 在兩個鍊錶(l1,l2)都不為空的情況下,比較兩個鍊錶的第一個元素的值的大小,取出最小的加入到新鍊錶當中,然後小鍊錶的頭指標指向下一位,而nList的指標也指向下一位
- 如果兩個鍊錶還都不為空,繼續循環
- 如果兩個鍊錶有一個為空,那麼將不為空的鍊錶拼接到nList後邊
- 最後一個回傳nList 的next 作為新鍊錶的頭結點
- 先判斷兩個鍊錶是否為空,為空直接回傳空鍊錶。不為空的繼續向下走
- 判斷l1 和l2的頭結點誰更小,則將這個節點保存為頭結點,後邊的節點一次拼接在該節點上邊。
- 後邊思路同版本一
public ListNode mergeTwoLists(ListNode list1, ListNode list2) { ListNode head = new ListNode(-1); ListNode = head; while (list1 != null && list2 != null) { boolean b = list1.val <= list2.val; all.next = b ? list1 : list2; if (b) list1 = list1.next; else list2 = list2.next; all = all.next; } all.next = list1 != null ? list1 : list2; return head.next; }版本二從原來的鍊錶中選擇出來一個進行整合,不適用任何新的記憶體
public ListNode mergeTwoLists(ListNode list1, ListNode list2) { if (list1 == null || list2 == null) { return list1 == null ? list2 : list1; } ListNode head = list1.val <= list2.val ? list1 : list2; if (list1.val <= list2.val) list1 = list1.next; else list2 = list2.next; ListNode tmp = head; while (list1 != null && list2 != null) { boolean b = list1.val <= list2.val; tmp.next = b ? list1 : list2; if (b) list1 = list1.next; else list2 = list2.next; tmp = tmp.next; } tmp.next = list1 != null ? list1 : list2; return head; }
以上是Java有序鍊錶怎麼合併的詳細內容。更多資訊請關注PHP中文網其他相關文章!
陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
3 週前ByDDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
2 週前ByDDD
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6
視覺化網頁開發工具

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器