1. 程式人生 > >劍指Offer--合並兩個排序鏈表

劍指Offer--合並兩個排序鏈表

鏈表 int == clas 規則 我們 st2 輸出 步驟

問題描述:輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。

思路:首先比較兩個鏈表的頭結點,如果鏈表1的頭結點小於鏈表2的頭結點,鏈表1的頭結點將是合並後鏈表的頭結點。然後繼續合並兩個鏈表中的剩余結點,兩個鏈表中剩余的結點依然是有序的,因此合並步驟與第一步相同。 顯然這是一個遞歸過程,可用遞歸函數實現。

代碼:

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/ public class Solution { public ListNode Merge(ListNode list1,ListNode list2) { if(list1==null&&list2==null){ return null; } if(list1==null){ return list2; } if(list2==null){ return list1; } ListNode head
= null; if(list1.val<list2.val){ head=list1; head.next=Merge(list1.next,list2); }else{ head=list2; head.next=Merge(list1,list2.next); } return head; } }

劍指Offer--合並兩個排序鏈表