剑指offer-python刷题-链表中倒数最后k个结点
发布日期:2021-07-28 12:03:21 浏览次数:6 分类:技术文章

本文共 824 字,大约阅读时间需要 2 分钟。

题目:输入一个链表,输出一个链表,该输出链表包含原链表中从倒数第k个结点至尾节点的全部节点。如果该链表长度小于k,请返回一个长度为 0 的链表。


方法一:直接遍历列表,把所有节点存储在一个列表中, 返回倒数第k个元素即可。

class Solution:    def FindKthToTail(self , pHead , k ):        # write code here        m = []        while pHead:            m.append(pHead)            pHead = pHead.next        if len(m) < k:            return None        elif k == 0:            return None        else:            return m[-k]

方法二:设置两个指针,快指针比慢指针提前走k步,然后开始遍历链表,当快指针到头时,返回慢指针的内容。

class Solution:    def FindKthToTail(self , pHead , k ):        # write code here        fast = pHead        slow = pHead        num = 0        while num < k:            if not fast:                return None            fast = fast.next            num += 1                    while fast:            fast = fast.next            slow = slow.next        return slow

转载地址:https://blog.csdn.net/sinat_42437278/article/details/118421496 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:vs2019+opencv4.1.0+python3.7,程序包安装
下一篇:剑指offer-python刷题-调整数组顺序使奇数位于偶数前

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月13日 18时51分09秒