劍指 Offer 25 合併兩個排序的鍊錶

2022-09-19 17:03:15 字數 574 閱讀 9695

劍指 offer 25. 合併兩個排序的鍊錶

雙路歸併即可, 總的時間複雜度為o(n),關鍵在於怎麼優化空間,可以是o(n),也可以是o(1)。

這題可以利用給好的空間在原空間上操作,可以進一步優化空間,每次new出新空間比較費空間,因為也是存一樣的數字,沒必要new出空間來了。

/**

* definition for singly-linked list.

* public class listnode

* }*/class solution else

tail = tail.next;

}if(l1 != null) tail.next = l1;

if(l2 != null) tail.next = l2;

return dummy.next;}}

用乙個tail指標指向鍊錶的尾節點,每次將歸併過程中較小的那個鏈結至tail後面,再更新正在遍歷的指標和尾節點即可。

劍指offer 25 合併兩個排序的鍊錶

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。1 非遞迴的方法 如果可以改變鍊錶,直接從頭結點開始依次移動比較兩個鍊錶當前值的大小,把較小的值作為當前結點的下乙個結點。注意 剛剛開始的時候不知道頭結點到底是1的還是2的,所以新建乙個額外的新節點作為輔助 ...

劍指offer25 合併兩個排序的鍊錶

題目 輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然使遞增排序的。例如 輸入下圖的鍊錶1和鍊錶2,則合併之後的公升序鍊錶如圖鍊錶3所示。鍊錶定義如下 思路 從兩個鍊錶的頭結點開始,比較兩個鍊錶的頭結點的值大小,值小的結點就是合併後鍊錶的頭結點,繼續合併鍊錶中剩餘的節點,在兩個鍊錶中剩下...

劍指offer 25 合併兩個排序的鍊錶

輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。輸入 1 3 5 2 4 5 輸出 1 2 3 4 5 5 二路歸併 新建乙個頭節點pmergedhead,並設定乙個指標pcurrenthead指向pmergedhead比較phead1和phead2指標指向的值 phead...