單向鍊錶找出倒數第k個節點,python實現

2021-09-24 05:43:27 字數 607 閱讀 9359

# 輸入乙個鍊錶,輸出鍊錶中倒數第k個節點

# 設乙個快指標,乙個慢指標,快指標先往前走(k-1)步。然後快慢指標分別向前一步,當快指標到達末尾時,慢指標剛好到達倒數第k個。

deffind_kth_to_tail

(phead, k):if

not phead:

return

none

slow = phead

fast = phead

# 快指標先往前 k-1步

for i in

range(1

, k)

:# 如果k超出了鍊錶長度,返回none

ifnot fast.

next

:return

none

fast = fast.

next

# 快指標和慢指標依次向前,直到快指標到達終點,返回慢指標所在節點

while fast.

next

: fast = fast.

next

slow = slow.

next

return slow.val

鍊錶倒數第k個節點

兩個指標一前一後,相距k即可。include include using namespace std struct linknode typedef linknode linklist void insertlist linklist list int data else linknode rese...

鍊錶 倒數第k個節點

問題 刪除倒數第k個節點 鏈結 雙指標法,開始時p1,p2都指向頭節點,先讓p2走k步,然後p1和p2一起走,當p2指向null時,p1就指向倒數第k個節點了 definition for singly linked list.struct listnode class solution retur...

找出鍊錶倒數第K個元素

思路 可設兩個頭指標p1和p2,當p2開始向前走,當走的步數為k時,p1開始走,此時當p2走到結尾時,p1所指的位置正好為倒數第k個元素的位置 class listnode override public string tostring return sb.tostring public stati...