题目描述

  • 输入一个链表,输出该链表中倒数第k个结点。

理解

  • 链表详解
  • python数据结构之链表

解题思路

思路1

  • 确定链表种结点个数lenth
  • 倒数第k个结点就是第length-k+1个结点
  • 需要考虑代码鲁棒性
    • 链表是否为空—头结点不存在
    • k<=0
    • 链表长度小于k
class Solution:def FindKthToTail(self, head, k):if head==None or k<=0:return Nonelength = 1node = headwhile node.next!=None:length+=1node = node.nextif k>length:return Nonefor i in range(length-k):head = head.nextreturn head

思路2

  • 设置2个指针,第一个指针走k步之后,第二个指针开始从头走,这样两个指针之间始终相隔k,当指针1走到链表结尾时,指针2的位置即倒数k个节点 。
  • 思路推广:寻找中间节点, 两个指针一起, 第一个指针每次走两步, 第二个指针每次走一步, 快指针指到尾部, 慢指针正好指到中间
class Solution:def FindKthToTail(self, head, k):if head==None or k<=0:return Nonep1 = headp2 = headfor i in range(k-1):if p1.next == None:return Noneelse:p1=p1.nextwhile p1.next!=None:p1=p1.nextp2=p2.nextreturn p2

或者

class Solution:def FindKthToTail(self, head, k):if not head or not k:return Nonep1 = headp2 = headfor i in range(k-1):if not p1.next:return Nonep1=p1.nextwhile p1.next:p1=p1.nextp2=p2.nextreturn p2

剑指offer_第14题_链表中倒数第k个结点_Python相关推荐

  1. [剑指offer]面试题15:链表中倒数第k个结点

    面试题15:链表中倒数第k个结点 题目:输入一个链表,输出该链表中倒数第 k 个结点.为了符合大多数人的习惯,本题从1 开始计数,即链表的尾结点是倒数第1 个结点.例如一个链表有6个结点,从头结点开始 ...

  2. 剑指offer——面试题15:链表中倒数第k个结点

    Solution1: 典型的双指针题目.但要考虑到很多边界条件! 注意此题中陷阱很多,具体看书中解释 20181008修改代码 /* struct ListNode {int val;struct L ...

  3. 牛客题霸 [链表中倒数第k个结点] C++题解/答案

    链表中倒数第k个结点 题解: 我们把链表存两份,让其中一个先走k个节点,然后两个链表一起走,直到第一个链表到头,因为两个相差k个节点,所以第二个链表停的位置就是倒数第k个 代码: /* struct ...

  4. 剑指offer:面试题22. 链表中倒数第k个节点

    题目:链表中倒数第k个节点 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1 ...

  5. 剑指offer面试题15:链表中倒数第K个节点

    题目:输入一个链表,输出该链表的倒数第K个节点.为了符合大多数人的习惯,本题从1开始计数,即链表尾节点是倒数第一个节点. 解题思路: 解法一:一般情况下,单向链表无法从后一个节点获取到它前面的节点,可 ...

  6. 剑指Offer #14 链表中倒数第k个结点(快慢指针) | 图文详解

    题目来源:牛客网-剑指Offer专题 题目地址:链表中倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 节点结构如下: public class ListNode {int val ...

  7. 剑指offer:链表中倒数第k个结点 python实现

    链表中倒数第k个结点 输入一个链表,输出该链表中倒数第k个结点. 解题思路 暴力求解: 判断链表是否为空: 复制链表,遍历一遍统计其长度: 如果长度小于k.则返回None: 否则,返回其长度-k的链表 ...

  8. 【剑指offer-Java版】15链表中倒数第K个结点

    链表中倒数第K个结点:快慢指针解决 需要注意的地方是 1) 可能会存在输入的链表大小小于k 2) 输入的k可能小于等于0 - 所以必须限定k大于0 public class _Q15 {public ...

  9. 剑指Offer_14_链表中倒数第k个结点

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 解题思路 利用两个指针,第一个指针先走k步,然后第二个指针从头开始走,当第一个指针到达最后时,第二个指针指向的结点就是倒数k个.如果第一个指针走到 ...

最新文章

  1. linux异常 - 无法分配内存
  2. LiveQing全新升级的RTMP流媒体服务器支持HLS(m3u8)、RTMP、HTTP-FLV高性能分发
  3. [html] 请使用canvas画一个椭圆
  4. 信号 移相 matlab,MATLAB中的SISOTOOL在数字式移相全桥中的应用
  5. Linux进程被视为文件,Linux下如何知道文件被那个进程写
  6. 数据库报错SELECT list is not in GROUP BY clause and contains nonaggregated col
  7. 企业数据可视化的优势
  8. VALSE学习(十五):网络搜索结构-NAS
  9. 阿里高效沟通的秘密:向上沟通,跨部门沟通,PREP汇报...这5招绝了!
  10. linux 用户邮件,Linux系统邮件客户端 Exchange账户相关
  11. Flash 101-第1部分:锤子和凿子
  12. 基于Python3.6和Opencv3的活动轮廓模型--CV和RSF
  13. 苹果电脑查看已经连上的WiFi密码(亲测可用)
  14. 周三多《管理学—原理与方法》第七版笔记和课后习题答案
  15. 如何让无源蜂鸣器响起来
  16. Can not set int field to null value错误解决:
  17. 小蒋搜搜(xp search) 官网
  18. MIPI CSI介绍
  19. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java流浪动物救助系统68at6
  20. 用友U8.0 V10虚拟机安装教VBox + Vmware

热门文章

  1. CSS3关于过渡效果的问题
  2. 从头学起androidlt;AutoCompleteTextView文章提示文本框.十九.gt;
  3. 青少年电子信息智能创新大赛 -- 图形化编程挑战赛初赛试题说明
  4. 【青少年编程】【四级】创意画图
  5. LeetCode实战:存在重复元素
  6. 【机器学习】基于人工鱼群算法的多元非线性函数寻优
  7. 【HDU/POJ/ZOJ】Calling Extraterrestrial Intelligence Again (素数打表模板)
  8. 真香!Vision Transformer 快速实现 Mnist 识别
  9. Arm收购进展、元宇宙、GPU涨价……听听黄仁勋怎么说
  10. 熬夜都要看完的 Python 干货!