Fourth. LeetCode 21:MergeTwo Sorted Lists 合併兩個有序連結串列

WX雲飛發表於2020-11-28

Merge two sorted linked lists and return it as a new sorted list. The new list
should be made by splicing together the nodes of the first two lists.

Example 1:

Input: l1 = [1,2,4], l2 = [1,3,4]
Output: [1,1,2,3,4,4]

Example 2:

Input: l1 = [], l2 = []
Output: []

Example 3:

Input: l1 = [], l2 = [0]
Output: [0]

Constraints:

The number of nodes in both lists is in the range [0, 50].
-100 <= Node.val <= 100
Both l1 and l2 are sorted in non-decreasing order.

本題主要是學習連結串列的一個哨兵用法,用一個哨兵結點來作為初始,然後後面的結點依次來向後延伸,最終只需要返回哨兵結點的指向結點就可以了。

class Solution {
   public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
       ListNode prehead = new ListNode(-1);
       ListNode prev = prehead;
       while(l1 != null && l2 != null){
           if(l1.val <= l2.val){
               prev.next = l1;
               l1 = l1.next;
           }else{
               prev.next = l2;
               l2 = l2.next;
           }
           prev = prev.next;
       }
       prev.next = l1 == null ? l2 : l1;
       return prehead.next;
   }
}

相關文章