輸入乙個鍊錶,輸出該鍊錶中的倒數第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...