Leetcode 鏈表(代碼隨想錄Part2)
Leetcode 24

心路歷程:
剛開始接觸的時候,這道題就想到了dummyhead去解決因?yàn)橐獙︻^結(jié)點(diǎn)的next指針域進(jìn)行操做。由于沒有指針指向head,引入一個dummyhead指向head。并且,引入虛擬頭結(jié)點(diǎn)以后,就構(gòu)成4個節(jié)點(diǎn),可以用遞歸的方式,來持續(xù)交換鏈表。
這其中沒有想到的是:1.應(yīng)用指針存儲下一個要交換的首結(jié)點(diǎn)。因?yàn)椴贿@么做,直接讓dummyhead鏈接 2結(jié)點(diǎn),1結(jié)點(diǎn)就沒有指針指向它了,它就孤立無援。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.其次這個遞歸的終止條件是“最后一個結(jié)點(diǎn)的next指針(偶數(shù)個結(jié)點(diǎn))為空并且next的next為為空(奇數(shù)個結(jié)點(diǎn))”


【快慢指針】

這道題目的難點(diǎn)就是要找到快慢指針的含義和利用index找到入口。并且是在fast和slow相遇的時候再申明 index查找相遇點(diǎn),就是fast此時指向的結(jié)點(diǎn)和head相遇。


【雙指針】:總結(jié)下來就是兩個不再一個起點(diǎn),但是想相遇??梢杂脀hile判斷。雙指針循環(huán)找到這個點(diǎn)。
標(biāo)簽: