17 合併兩個排序的列表

2021-08-19 13:39:36 字數 641 閱讀 4826

一般的寫法:

public

class solution else

p = p.next;

}if(list1 == null)

}if(list2 == null)

}p.next = null;

return head.next;

}}

但是,我這樣並不是乙個好答案,因為我每一次都進行了new的操作,浪費了大量的空間!進行簡化後,**如下:

public

class solution else

p = p.next;

}if(list1 == null)

if(list2 == null)

return head.next;

}}

2、遞迴的寫法

public

class solution else

}}

這個遞迴需要仔細觀察一下,在這個遞迴函式中不能使用全域性變數head!

改良後:

public

class solution else

}}

合併兩個排序的列表

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。輸入 返回值 由於兩個鍊錶都是遞增的,所以我們可以在遍歷的同時,判斷每個鍊錶當前各自值的大小,取出較小的那個,作為新鍊錶的結點,否則取另乙個,直到乙個鍊錶為空,將剩下乙個鍊錶拼接至新鍊錶尾端 注意 建立鍊錶使...

合併兩個排序的間隔列表

合併兩個已排序的區間列表,並將其作為乙個新的有序區間列表返回。新的區間列表應該通過拼接兩個列表的區間並按公升序排序。樣例1 輸入 1,2 3,4 and list2 2,3 5,6 輸出 1,4 5,6 解釋 1,2 2,3 3,4 1,4 5,6 5,6 樣例2 輸入 1,2 3,4 和 list...

合併兩個排序的鍊錶 17

輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的結點仍然是按照遞增排序的。要合併兩個遞增的鍊錶,首先找出兩個鍊錶的頭結點中較小的乙個就為合併後新鍊錶的頭結點,之後再依次將兩個鍊錶中的結點值進行相比較,依次將較小值在新鍊錶中進行尾插,直到其中乙個鍊錶遍歷完成,將剩餘鍊錶直接鏈在新鍊錶的尾部就可以了...