劍指Offer-23合併兩個排序的連結串列
阿新 • • 發佈:2021-02-07
技術標籤:劍指Offer
public static ListNode mergeTwoLists(ListNode l1, ListNode l2) { // 偽節點 ListNode node = new ListNode(-1); ListNode head = node; ListNode p; // 尾插法實現 while (l1 != null && l2 != null){ if (l1.val < l2.val){ p = new ListNode(l1.val); l1 = l1.next; }else { p = new ListNode(l2.val); l2 = l2.next; } node.next = p; node = p; } // 剩餘的都接上 while (l1 != null){ p = new ListNode(l1.val); node.next = p; node = p; l1 = l1.next; } while (l2 != null){ p = new ListNode(l2.val); node.next = p; node = p; l2 = l2.next; } return head.next; }
這程式碼可以簡潔很多
public static ListNode mergeTwoLists(ListNode l1, ListNode l2) { // 偽節點 ListNode head = new ListNode(-1); ListNode node = head; // 尾插法實現 while (l1 != null && l2 != null){ if (l1.val < l2.val){ node.next = l1; l1 = l1.next; }else { node.next = l2; l2 = l2.next; } node = node.next; } // 剩餘的都接上 if (l1 != null){ node.next = l1; } if (l2 != null){ node.next = l2; } return head.next; }