題目:
輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。
關於鍊錶和陣列:
1、建立乙個新陣列,遍歷鍊錶中的結點,將數值存入陣列中。輸出陣列中-k下標對應的值即可
class2、python 設定兩個指標,p1,p2,先讓p2走k-1步,然後再一起走,直到p2為最後乙個 時,p1即為倒數第k個節點listnode:
def__init__
(self, x):
self.val =x
self.next =none
class
solution:
deffindkthtotail(self, head, k):
#write code here
l =while head is
notnone:
head =head.next
if k > len(l) or k <= 0: #
沒有倒數第0個的說法,所以是k<=0
return
none
return l[-k]
classsolution2:
deffindkthtotail2(self, head, k):
if head is none or k <= 0: #
沒有倒數第0個的說法,所以是k<=0
return
none
#write code here
p1 =head
p2 =head
while k > 1: #
p2到第k-1個結點 停止
if p2.next is
notnone:
p2 =p2.next
k -= 1
else
:
return
none
while p2.next is
not none: #
p2到最後乙個結點停止
劍指offer17 鍊錶中倒數第k個結點
輸入乙個鍊錶,輸出該鍊錶中的倒數第k個結點 設計快慢指標,先讓快指標往前跑k步,使快慢指標之間相差k步,然後再讓快慢指標一起往前跑,那麼當快指標跑到none的時候,慢指標所在的位置即為倒數第k個結點。注意考慮邊界條件 k比鍊錶長度小 定義兩個變數,變數之間間隔k,直到乙個變數為none即可。k比鍊錶...
劍指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...