劍指offer17 鍊錶中倒數第k個結點

2021-10-05 20:13:23 字數 735 閱讀 7746

輸入乙個鍊錶,輸出該鍊錶中的倒數第k個結點

設計快慢指標,先讓快指標往前跑k步,使快慢指標之間相差k步,然後再讓快慢指標一起往前跑,那麼當快指標跑到none的時候,慢指標所在的位置即為倒數第k個結點。

注意考慮邊界條件

k比鍊錶長度小

定義兩個變數,變數之間間隔k,直到乙個變數為none即可。

k比鍊錶長度大

快指標在往前跑k步的時候肯定會遇到none,遇到none時直接return none 即可。

class

solution

:def

findkthtotail

(self, head, k)

: firstpoint=head

secondpoint=head

for i in

range

(k):

if firstpoint ==

none

:return

none

firstpoint=firstpoint.

next

while firstpoint !=

none

: firstpoint=firstpoint.

next

secondpoint=secondpoint.

next

return secondpoint

牛客網該題鏈結

劍指offer 17 鍊錶中倒數第k個結點

題目 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。關於鍊錶和陣列 1 建立乙個新陣列,遍歷鍊錶中的結點,將數值存入陣列中。輸出陣列中 k下標對應的值即可 class listnode def init self,x self.val x self.next none class solution de...

劍指offer(17) 鍊錶倒數第k個結點

考點 鍊錶 題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。思路解析 快慢指標 快慢指標初始為頭節點。快指標先走k 1步,到達第k個節點。此時慢指標相對快指標是倒數第k個節點。此時快慢指標一起走,當快指標到達最後乙個節點時,慢指標位於倒數第k個節點。如k為3,則pa先走2步,先到第3個節點。pa...

劍指offer 鍊錶中倒數第k個結點(鍊錶)

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。分析 兩個指標pointresult和pointend一起指向頭結點,然後根據k,移動pointend,使pointresult和pointend的距離為k 1。然後同時移動pointresult和pointend,當pointend指向最後乙個結點時,po...