记录刷题的过程。牛客和力扣中都有相关题目,这里以牛客的题目描述为主。该系列默认采用python语言。
1、问题描述:
输入一个链表,输出该链表中倒数第k个结点。
2、数据结构:
链表
3、题解:
快慢指针
# -*- 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
#如果K大于链表的长度,返回None
#否则,定义快慢两个指针,相差k,进行遍历
firstnode = head
secondnode = head
i = 0
for i in range(k) :
if firstnode == None:
return None
firstnode = firstnode.next
while firstnode != None:
secondnode = secondnode.next
firstnode = firstnode.next
return secondnode
4、复杂度分析:
时间复杂度:O(N)
空间复杂度:O(1)