劍指offer17 --- 鏈表中倒數第k個結點

劍指offer17 — 鏈表中倒數第k個結點

題目

輸入一個鏈表,輸出該鏈表中的倒數第k個結點

分析

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

注意考慮邊界條件

  1. k比鏈表長度小
    1. 定義兩個變量,變量之間間隔k,直到一個變量爲None即可。
  2. k比鏈表長度大
    1. 快指針在往前跑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         

牛客網該題鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章