劍指offer 合併兩個排序鏈表 java代碼

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

注意要點
- 不要在定義了新的ListNode節點 後,直接寫出下面這種錯誤寫法:

    ListNode node = null
    if (list1.val >= list2.val) {
            node.next = list2
            list2 = list2.next;
        }

這種情形忽略了初始化爲空的前提
兩個有序鏈表,只需要不斷的比較兩個節點值的大小,然後依次後移挪動即可。
參考代碼如下:

public class Solution {
    public ListNode Merge(ListNode list1,ListNode list2) {
        if (list1 == null) {

            return list2;
        }
        if (list2 == null) {

            return list1;
        }
        ListNode node = null;
        if (list1.val >= list2.val) {
            node = list2;
            node.next = Merge(list1, list2.next);
        }
        if (list1.val < list2.val) {
            node = list1;
            node.next = Merge(list1.next, list2);

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