Leetcode 21 Merge Two Sorted Lists

題目詳情

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

題目要求咱們將兩個有序鏈表合成一個有序的鏈表。node

Example:
輸入: 1->2->4, 1->3->4
輸出: 1->1->2->3->4->4指針

想法

  • 首先要判斷其中一個鏈表爲空的狀態,這種狀況直接返回另外一個鏈表便可。
  • 每次遞歸都會得到當前兩個鏈表指針位置的值較小的節點,從而組成一個新的鏈表。

解法

public class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1 == null){
            return l2;
        }
        if(l2 == null){
            return l1;
        }
        
        ListNode mergeHead;
        if(l1.val < l2.val){
            mergeHead = l1;
            mergeHead.next = mergeTwoLists(l1.next, l2);
        }
        else{
            mergeHead = l2;
            mergeHead.next = mergeTwoLists(l1, l2.next);
        }
        return mergeHead;
    }
}
相關文章
相關標籤/搜索