当前位置: 首页 > 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

相关文章:

  • 【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 实现可配置圆角效果
  • 干细胞从科研到市场应用有多远?发展还面临何挑战?
  • 苏杯登顶看到老将新人冲劲,国羽用冠军为奥运新周期开好头
  • 体坛联播|拜仁提前2轮德甲夺冠,赵心童11比6暂时领先
  • 五一假期上海多个景点人流如织,警方多措并举确保秩序
  • 苏州一直升机坠落致1死4伤,事故调查正展开
  • 美法官裁定特朗普援引战时法律驱逐黑帮违法,系首次永久性驳回