实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

注意:本题相对原题稍作改动

示例:

输入: 1->2->3->4->5 和 k = 2
输出: 4

说明:

给定的 k 保证是有效的。

Python实现

思路很直接,这里加了dummy trick节点,防止fast指针遍历超出链表。

class Solution:
    def kthToLast(self, head: ListNode, k: int) -> int:
        dummy = ListNode(-1)
        dummy.next = head
        slow = dummy
        fast = dummy
        for i in range(k):
            fast = fast.next
        while fast.next:
            slow = slow.next
            fast = fast.next
        return slow.next.val