你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

leetCode 21-合并两个有序链表

2021/12/18 17:45:46

解法1:双指针。

class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        if(null==list1) return list2;
        if(null==list2) return list1;
        ListNode pHead=new ListNode();
        ListNode t=pHead;
        while(null!=list1 && null!=list2){
            if(list1.val<=list2.val){
                t.next=list1;
                list1=list1.next;
            }else{
                 t.next=list2;
                list2=list2.next;
               
            }
             t=t.next;
        }
        if(null==list1){
            t.next=list2;
        }
        if(null==list2){
            t.next=list1;
        }
        return pHead.next;
    }
}

解法2:递归。

public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        if(null==list1) return list2;
        if(null==list2) return list1;
        if(list1.val<=list2.val){
            list1.next=mergeTwoLists(list1.next,list2);
            return list1;
        }else{
            list2.next=mergeTwoLists(list1,list2.next);
            return list2;
        }
        
    
    }