藍橋杯基礎訓練(合併兩個有序鏈表)

題目:合併有序鏈表
將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 

示例:

輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1 == null && l2 == null) return null;
        if(l1 == null && l2!=null) return l2;
        if(l1!=null && l2== null) return l1;
        ListNode p1 = l1,p2 = l2;
        ListNode tail,head;
        if(p1.val < p2.val){
            head = tail = p1;
            p1 = p1.next;
        }else{
            head = tail = p2;
            p2 = p2.next;
        }
        while(p1 !=null && p2 !=null){
           if(p1.val < p2.val){
                tail.next = p1;
                p1 = p1.next;
            }else{
                tail.next = p2;
                p2 = p2.next;
            }
            tail = tail.next;
        }
        if(p1 == null) tail.next = p2;
        else if(p2 == null) tail.next = p1;     
        return  head;  
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章