当前位置: 首页 > news >正文

hot100:链表倒数k个节点- 力扣(LeetCode)

题目:

实现一种算法,找出单向链表中倒数第 k 个节点。返回该链表中倒数第k个节点。

示例一:

输入:{1,2,3,4,5},2

返回值:{4,5}

说明:返回倒数第2个节点4,系统会打印后面所有的节点来比较。

示例二:

输入:{2},8

返回值:{}

思路如下:

用双指针,可省去统计链表长度操作,算法流程为:

  1. 初始化双指针 pre , cur 都指向头节点 head ;

  2. 先令 cur 走 k 步,此时 pre , cur 的距离为 k ;

  3. 令 pre , cur 一起走,直到 cur 走过尾节点时跳出,此时 pre 指向「倒数第 k 个节点」,返回之即可;

注意:

1.处理 k <= 0

if k <= 0 or not pHead:return None

2.检查快指针移动时的越界

for _ in range(k):if not cur:  # 此时 cur 为 None,但循环尚未完成 k 次return Nonecur = cur.next
题解如下:
class Solution:def FindKthToTail(self , pHead, k):""":type:  pHead: ListNode, k: int:rtype: ListNode"""# write code hereif k <=0 or not pHead:return Nonepre, cur = pHead, pHeadfor _ in range(k):if not cur:return Nonecur = cur.nextwhile cur:pre, cur = pre.next, cur.nextreturn pre
http://www.dtcms.com/a/171414.html

相关文章:

  • 【SimSession 】2:PacedReceiver:支持与 PacedVideoSender 本地联调
  • PyTorch_张量拼接
  • 多语言笔记系列:Polyglot Notebooks 多种使用方式
  • 升级 CUDA Toolkit 12.9 与 cuDNN 9.9.0 后验证指南:功能与虚拟环境检测
  • 基于大模型的隐睾(睾丸可触及)预测及临床干预策略研究报告
  • 机器学习+多目标优化的算法如何设计?
  • Fortran语言,do-end do循环,相互包含测试,自动性能优化
  • 《新手学看盘》速读笔记
  • 【浅尝Java】变量与数据类型(含隐式类型转换、强制类型转换、整型与字符串互相转换等)
  • 百度系列产品学习
  • Linux环境下的进程创建、退出和进程等待
  • C++专业面试题
  • comfyui错误记录:Text_Translation :No module named ‘translators‘
  • Linux文件权限管理:chmod修改权限 与 chown修改所有者
  • LeetCode 热题 100 48. 旋转图像
  • shell编程补充内容(Linux课程实验3)
  • 胶合目录解释
  • 如何提升个人情商?
  • TF-IDF算法详解
  • 【Godot】使用 Shader 实现可配置圆角效果
  • 缓存与数据库的高效读写流程解析
  • C++动态内存分配:从基础到最佳实践
  • 【数据结构】线性表--链表
  • 【Linux系统】互斥量mutex
  • Spring AI 实战:第八章、Spring AI Tool Calling之与时俱进
  • Android基于绑定的控件用法
  • SpringBoot的启动流程
  • NoSQL入门实战:MongoDB与Redis核心应用全解析
  • 从 Java 开发到 AI 工程师:全面学习指南
  • 【漫话机器学习系列】238.训练误差与测试误差(Training Error And Test Error)