最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
西昌市| 嘉黎县| 日喀则市| 高要市| 禹州市| 巫溪县| 枣强县| 宜春市| 商洛市| 宜良县| 牟定县| 剑阁县| 徐水县| 丰都县| 砀山县| 无锡市| 伊金霍洛旗| 乌鲁木齐市| 平阳县| 山阳县| 达州市| 蕉岭县| 黔东| 镇康县| 汶川县| 山东省| 旌德县| 随州市| 资源县| 天柱县| 安西县| 安阳县| 和平县| 西丰县| 浦东新区| 苏尼特右旗| 平江县| 济宁市| 永川市| 广德县| 土默特右旗|