1. 程式人生 > >劍指Offer-連結串列-(4)

劍指Offer-連結串列-(4)

知識點/資料結構:連結串列

題目描述:
輸入兩個單調遞增的連結串列,輸出兩個連結串列合成後的連結串列,當然我們需要合成後的連結串列滿足單調不減規則。

思路

從合併兩個連結串列的頭節點開始,連結串列1的頭節點的值小於連結串列2的頭節點的值,因此連結串列1的頭節點監視合併後連結串列的頭節點。;

在兩個連結串列剩下的節點中依舊是有序的,因此重複步驟1;

注意把節點連結起來就好,這是典型的遞迴過程;

注意考慮邊界條件;

public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        
        if(list1==null) return list2;
        if(list2==null) return list1;
        //也可以直接用list1或者list2的基礎上直接修改指向;為了看著清楚,新建了一個節點
        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;
    }
}