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

LeetCode 面试题 02.02. 返回倒数第 k 个节点

面试题 02.02. 返回倒数第 k 个节点

题目链接:面试题 02.02. 返回倒数第 k 个节点

题目描述:实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/typedef struct ListNode ListNode;
int kthToLast(struct ListNode* head, int k) 
{//创建快慢指针ListNode* slow = head;ListNode* fast = head;//快指针先走k个结点while(k--){fast = fast->next;}while(fast){slow = slow->next;fast = fast->next;}return slow->val;
}

解题思路:

解决这个问题的核心思想是:通过在两个指针之间制造并保持一个固定的距离差,当一个指针到达终点时,另一个指针就正好在我们想要的位置上。

想象一下两个指针在一个链表上移动:

  1. 我们想找到距离终点 k 的位置。
  2. 我们先让指针 A(我们称之为 fast 指针)从起点出发,先走 k 步。
  3. 然后,让指针 B(我们称之为 slow 指针)也从起点出发。
  4. 现在,A 和 B 同时以相同的速度(每次一步)向前走。
  5. 因为 A 和 B 之间始终保持着 k 步的距离差,所以当 A 到达终点时,B 所在的位置,正好就是距离终点 k 步的地方。
http://www.dtcms.com/a/268514.html

相关文章:

  • Java 大视界 -- Java 大数据在智能安防视频监控系统中的视频质量评估与智能修复(337)
  • Kettle + 大数据实战:从数据采集到分布式处理的完整流程指南
  • Kafka生产者的初始化
  • Angular V20 新特性
  • QML TextEdit组件
  • 【BFS】 P10864 [HBCPC2024] Genshin Impact Startup Forbidden II|普及+
  • 使用3.20.3版本的protoc编译proto2和proto3
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(四十一) -> 获取自定义编译参数
  • 百度开源文心 4.5 系列开源大模型 GitCode 本地化部署,硅基流动:文心 vs. DeepSeek vs. Qwen 3.0 深度测评
  • 【apply from: “$flutterRoot/packages/flutter_tools/gradle/flutter.gradle“作用】
  • 云计算领域“XaaS”是什么?
  • 使用CocoaPods集成第三方SDK - 从零开始完整指南
  • 开源 C# .net mvc 开发(七)动态图片、动态表格和json数据生成
  • H3初识——入门介绍之路由、路由元数据
  • Maven 依赖管理中的 <optional> 与 <scope>标签
  • 管道机器人手臂机械结构设计cad【8张】+三维图+设计说明书+绛重
  • PDF 上传并保存到 MinIO 数据库
  • 基于Python实现LSTM对股票走势的预测
  • 机器学习知识
  • 医疗AI底层能力全链条工程方案的深度分析:从技术突破到临床应用
  • Mask机制​​中的​​Padding Mask​​ 和 ​​Sentence Mask
  • DCL-2-权限控制
  • 项目进度受上游依赖影响大,如何降低风险
  • 国民经济行业分类 GB/T 4754—2017 (PDF和exce版本)
  • .NET9 实现 JSON 序列化和反序列化(Newtonsoft.Json System.Text.Json)性能测试
  • Mysql8.0高可用集群架构实战
  • MySQL 8.0 OCP 1Z0-908 题目解析(21)
  • 熟练掌握ModbusTCP转PROFINET网关的互转技术
  • 深入解析迭代器模式:优雅地遍历聚合对象元素
  • 数据挖掘:深度解析与实战应用