1. 程式人生 > >LeetCode-21. 合併兩個有序連結串列

LeetCode-21. 合併兩個有序連結串列

題目

將兩個有序連結串列合併為一個新的有序連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。

示例:
輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4

解題

  • 同時遍歷兩個連結串列比較每個節點即可
  • 設定虛擬頭結點簡化操作
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode dummyHead = new
ListNode(0); ListNode cur = dummyHead; while (l1 != null || l2 != null){ if (l1 == null) { cur.next = l2; l2 = l2.next; } else if (l2 == null) { cur.next = l1; l1 = l1.next; // l1, l2均不為空
} else { if (l1.val > l2.val) { cur.next = l2; l2 = l2.next; } else { cur.next = l1; l1 = l1.next; } } cur = cur.next; } return
dummyHead.next; } }