將兩個升序鍊錶合併為一個新的升序鍊錶並傳回。新鍊錶是透過拼接給定的兩個鍊錶的所有節點組成的。
範例1:
輸入:l1 = [1,2,4], l2 = [1,3,4]
輸出:[1,1,2,3,4,4]
範例二:
##範例3:8e99a69fbe029cd4e2b854e244eab143輸入:128dba7a3a77be0113eb0bea6ea0a5d0l1 = [], l2 = []
8e99a69fbe029cd4e2b854e244eab143輸出:128dba7a3a77be0113eb0bea6ea0a5d0[]
輸入:l1 = [] , l2 = [0]想法#版本一輸出:[0]
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中文網其他相關文章!