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