在数据结构与算法-链表必写题汇总(快慢指针、哨兵等)中,有类似的题目,使用快慢指针即可解决,但剑指的这题直接返回即可,之前写的文章中的那题,还需要对倒数第k个结点执行删除操作,其实也很简单,注意每次到目标节点的前驱节点为止,才能删除该目标结点。
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def FindKthToTail(self, head, k):
# write code here
if head is None:
return None
slow = head
fast = head
between = 0
while between != k - 1:
fast = fast.next
if fast is None:
return None
between += 1
while fast.next is not None:
slow = slow.next
fast = fast.next
return slow