剑指offer_第14题_链表中倒数第k个结点_Python
题目描述
- 输入一个链表,输出该链表中倒数第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相关推荐
- [剑指offer]面试题15:链表中倒数第k个结点
面试题15:链表中倒数第k个结点 题目:输入一个链表,输出该链表中倒数第 k 个结点.为了符合大多数人的习惯,本题从1 开始计数,即链表的尾结点是倒数第1 个结点.例如一个链表有6个结点,从头结点开始 ...
- 剑指offer——面试题15:链表中倒数第k个结点
Solution1: 典型的双指针题目.但要考虑到很多边界条件! 注意此题中陷阱很多,具体看书中解释 20181008修改代码 /* struct ListNode {int val;struct L ...
- 牛客题霸 [链表中倒数第k个结点] C++题解/答案
链表中倒数第k个结点 题解: 我们把链表存两份,让其中一个先走k个节点,然后两个链表一起走,直到第一个链表到头,因为两个相差k个节点,所以第二个链表停的位置就是倒数第k个 代码: /* struct ...
- 剑指offer:面试题22. 链表中倒数第k个节点
题目:链表中倒数第k个节点 输入一个链表,输出该链表中倒数第k个节点.为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点.例如,一个链表有6个节点,从头节点开始,它们的值依次是1 ...
- 剑指offer面试题15:链表中倒数第K个节点
题目:输入一个链表,输出该链表的倒数第K个节点.为了符合大多数人的习惯,本题从1开始计数,即链表尾节点是倒数第一个节点. 解题思路: 解法一:一般情况下,单向链表无法从后一个节点获取到它前面的节点,可 ...
- 剑指Offer #14 链表中倒数第k个结点(快慢指针) | 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:链表中倒数第k个结点 题目描述 输入一个链表,输出该链表中倒数第k个结点. 节点结构如下: public class ListNode {int val ...
- 剑指offer:链表中倒数第k个结点 python实现
链表中倒数第k个结点 输入一个链表,输出该链表中倒数第k个结点. 解题思路 暴力求解: 判断链表是否为空: 复制链表,遍历一遍统计其长度: 如果长度小于k.则返回None: 否则,返回其长度-k的链表 ...
- 【剑指offer-Java版】15链表中倒数第K个结点
链表中倒数第K个结点:快慢指针解决 需要注意的地方是 1) 可能会存在输入的链表大小小于k 2) 输入的k可能小于等于0 - 所以必须限定k大于0 public class _Q15 {public ...
- 剑指Offer_14_链表中倒数第k个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点. 解题思路 利用两个指针,第一个指针先走k步,然后第二个指针从头开始走,当第一个指针到达最后时,第二个指针指向的结点就是倒数k个.如果第一个指针走到 ...
最新文章
- linux异常 - 无法分配内存
- LiveQing全新升级的RTMP流媒体服务器支持HLS(m3u8)、RTMP、HTTP-FLV高性能分发
- [html] 请使用canvas画一个椭圆
- 信号 移相 matlab,MATLAB中的SISOTOOL在数字式移相全桥中的应用
- Linux进程被视为文件,Linux下如何知道文件被那个进程写
- 数据库报错SELECT list is not in GROUP BY clause and contains nonaggregated col
- 企业数据可视化的优势
- VALSE学习(十五):网络搜索结构-NAS
- 阿里高效沟通的秘密:向上沟通,跨部门沟通,PREP汇报...这5招绝了!
- linux 用户邮件,Linux系统邮件客户端 Exchange账户相关
- Flash 101-第1部分:锤子和凿子
- 基于Python3.6和Opencv3的活动轮廓模型--CV和RSF
- 苹果电脑查看已经连上的WiFi密码(亲测可用)
- 周三多《管理学—原理与方法》第七版笔记和课后习题答案
- 如何让无源蜂鸣器响起来
- Can not set int field to null value错误解决:
- 小蒋搜搜(xp search) 官网
- MIPI CSI介绍
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java流浪动物救助系统68at6
- 用友U8.0 V10虚拟机安装教VBox + Vmware
热门文章
- CSS3关于过渡效果的问题
- 从头学起androidlt;AutoCompleteTextView文章提示文本框.十九.gt;
- 青少年电子信息智能创新大赛 -- 图形化编程挑战赛初赛试题说明
- 【青少年编程】【四级】创意画图
- LeetCode实战:存在重复元素
- 【机器学习】基于人工鱼群算法的多元非线性函数寻优
- 【HDU/POJ/ZOJ】Calling Extraterrestrial Intelligence Again (素数打表模板)
- 真香!Vision Transformer 快速实现 Mnist 识别
- Arm收购进展、元宇宙、GPU涨价……听听黄仁勋怎么说
- 熬夜都要看完的 Python 干货!