剑指Offer24-链表中倒数第k个结点

在这里插入图片描述
数据结构与算法-链表必写题汇总(快慢指针、哨兵等)中,有类似的题目,使用快慢指针即可解决,但剑指的这题直接返回即可,之前写的文章中的那题,还需要对倒数第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
发布了71 篇原创文章 · 获赞 20 · 访问量 4817

猜你喜欢

转载自blog.csdn.net/qq_22795223/article/details/105702803