牛客-剑指offer系列题解:链表中倒数第k个节点

记录刷题的过程。牛客和力扣中都有相关题目,这里以牛客的题目描述为主。该系列默认采用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)

你可能感兴趣的:(牛客-剑指offer系列题解)