【力扣日記】面試題02.02 返回倒數第K個節點 | 鏈表 | 快慢指針

題目描述

實現一種算法,找出單向鏈表中倒數第 k 個節點。返回該節點的值。

類似019 刪除鏈表的倒數第K個節點

算法思路

簡單粗暴的:

class Solution:
    def kthToLast(self, head: ListNode, k: int) -> int:
        ls=[]
        while head:
            ls.append(head.val)
            head=head.next
        return ls[-k]

快慢指針:

class Solution:
    def kthToLast(self, head: ListNode, k: int) -> int:
        fast = head
        slow = head
        while k > 0:
            fast = fast.next
            k -= 1
        while fast != None:
            fast = fast.next
            slow = slow.next
        return slow.val

讓快指針先行K步,然後快慢指針同步,當快指針走到盡頭時,慢指針剛好是第K個節點。

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