25 合併兩個排序的鍊錶

2021-10-22 18:47:27 字數 619 閱讀 1856

輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。

示例1:

輸入:1->2->4, 1->3->4

輸出:1->1->2->3->4->4

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

else}if

(l1!=null)

if(l2!=null)

return dummyhead.next;

}}

時間複雜度o(n + m)**,其中 n 和 m 分別為兩個鍊錶的長度。因為每次迴圈迭代中,l1 和 l2 只有乙個元素會被放進合併鍊錶中, 因此 while 迴圈的次數不會超過兩個鍊錶的長度之和。所有其他操作的時間複雜度都是常數級別的,因此總的時間複雜度為 o(n+m)。

空間複雜度o(1)

鍊錶 25題 合併兩個排序的鍊錶

輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 限制 0 鍊錶長度 1000首先比較兩個鍊錶的頭節點,將指標newlist指向頭節點中較小的乙個,然後將那個鍊錶的頭節點指標向後移動一位來更新頭節點指標。然後進...

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

題目描述 演算法分析 提交 class solution listnode merge2 listnode phead1,listnode phead2 else listnode newhead currnode while p1 p2 else currnode currnode next wh...

ATO 25 合併兩個排序的鍊錶

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合併後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。遞迴版本 struct listnode class solution listnode mergerecursively listnode phead1,listnode phead2 else retur...