无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

labuladong 的算法秘籍-讀書筆記-雙指針技巧秒殺七道鏈表題目

2023-01-17 22:49 作者:風(fēng)格星辰  | 我要投稿

1、合并兩個(gè)有序鏈表

解題思路

使用虛擬頭結(jié)點(diǎn)

遍歷兩個(gè)鏈表,將數(shù)值小的節(jié)點(diǎn)加入虛擬頭節(jié)點(diǎn)中。直到某個(gè)鏈表為空。將另一個(gè)鏈表加入。

返回虛擬頭節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)。

當(dāng)你需要?jiǎng)?chuàng)造一條新鏈表的時(shí)候,可以使用虛擬頭結(jié)點(diǎn)簡(jiǎn)化邊界情況的處理


2、單鏈表的分解

解題思路

創(chuàng)建兩個(gè)虛擬頭節(jié)點(diǎn),分別存放小于鏈表和大于等于鏈表

遍歷鏈表,小于的加入鏈表,大于等于的加入另一個(gè)鏈表

遍歷兩個(gè)鏈表虛擬頭節(jié)點(diǎn)的下一個(gè)節(jié)點(diǎn)

然后連接兩個(gè)鏈表


3、合并k個(gè)有序鏈表

1的加強(qiáng)型,其實(shí)先從k個(gè)鏈表中找到第一個(gè)最小的就行,可以使用最小堆。然后使用1的套路


4、單鏈表的倒數(shù)第k個(gè)節(jié)點(diǎn) 刪除鏈表的倒數(shù)第k個(gè)節(jié)點(diǎn)

雙指針,第一個(gè)指針先走k步,然后第二個(gè)指針指向頭,兩個(gè)指針相差k。兩個(gè)指針同時(shí)往前走。

當(dāng)?shù)谝粋€(gè)指針到尾部的時(shí)候,第二個(gè)指針剛好在倒數(shù)第k個(gè)節(jié)點(diǎn)。


5、單鏈表的中點(diǎn)

快慢指針,一個(gè)指針走1步,一個(gè)指針走2步。當(dāng)走兩步的指針到尾部時(shí),另一個(gè)指針就到中間。


6、判斷鏈路是否包含環(huán)

快慢指針,慢指針走1步,快指針走2步,如果快指針最后指向空,說明沒有環(huán),如果快慢指針相遇,說明有環(huán)。


7、兩個(gè)鏈表是否相交

將兩個(gè)鏈表相連,同時(shí)遍歷兩個(gè)鏈表就可以同時(shí)進(jìn)入公共部分

具體代碼見知乎

https://zhuanlan.zhihu.com/p/599759514

labuladong 的算法秘籍-讀書筆記-雙指針技巧秒殺七道鏈表題目的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
湟中县| 正安县| 长垣县| 铜陵市| 德庆县| 宝兴县| 剑河县| 芦溪县| 湖州市| 青海省| 溧阳市| 佳木斯市| 枣庄市| 开化县| 当涂县| 渭源县| 乐至县| 宜丰县| 建平县| 潢川县| 喀喇| 重庆市| 德保县| 上犹县| 静乐县| 边坝县| 文登市| 赤城县| 弥渡县| 安溪县| 耿马| 定陶县| 海淀区| 柳江县| 黑山县| 射洪县| 秦皇岛市| 自治县| 荥经县| 浦北县| 富川|