1. 题目

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

示例:
给定一个链表: 1->2->3->4->5, 和 k = 2.
返回链表 4->5.

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 快指针先走k步
  • 随后快慢指针一起前进,直到快指针到达NULL
  • 慢指针指向倒数第k个节点
class Solution {public:ListNode* getKthFromEnd(ListNode* head, int k) {ListNode *fast = head, *slow = head;while(k--)fast = fast->next;while(fast){fast = fast->next;slow = slow->next;}return slow;}
};

程序员面试金典 - 面试题 02.02. 返回倒数第 k 个节点

class Solution {public:int kthToLast(ListNode* head, int k) {ListNode *fast = head, *slow = head;while(k--)fast = fast->next;while(fast){fast = fast->next;slow = slow->next;}return slow->val;}
};

剑指Offer - 面试题22. 链表中倒数第k个节点(快慢指针)相关推荐

  1. 剑指offer面试题22. 链表中倒数第k个节点(链表)

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

  2. 剑指offer面试题[15]-链表中倒数第K个结点

    题目描述 输入一个链表,输出该链表中倒数第k个结点. 思路: 假设链表有n个结点,那么倒数第k个结点就是从头结点开始的第n-k+1个结点,我们只要从头结点开始往后走n-k+1步就可以了.那么问题来了: ...

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

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

  4. 剑指offer(C++)-JZ22:链表中倒数最后k个结点(数据结构-链表)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点 ...

  5. 面试题22. 链表中倒数第k个节点

    2020-03-21 1.题目描述 链表中倒数第k个节点 2.题解 倒数第k个,相当于正数第l-k+1个,其中l为链表的长度 3.代码 #include <iostream> using ...

  6. 【每日一题】剑指 Offer 22. 链表中倒数第k个节点

    剑指 Offer 22. 链表中倒数第k个节点

  7. 【LeetCode】剑指 Offer 22. 链表中倒数第k个节点

    [LeetCode]剑指 Offer 22. 链表中倒数第k个节点 文章目录 [LeetCode]剑指 Offer 22. 链表中倒数第k个节点 一.遍历 二.双指针 总结 一.遍历 先遍历统计链表长 ...

  8. 力扣—— 19. 删除链表的倒数第 N 个结点(java)、剑指 Offer 22. 链表中倒数第k个节点(java)

    19. 删除链表的倒数第 N 个结点(java) 一.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 输入:head = [1,2,3 ...

  9. LeetCode-剑指 Offer 22. 链表中倒数第k个节点

    剑指 Offer 22. 链表中倒数第k个节点 思路一:利用快慢双指针 /*** Definition for singly-linked list.* struct ListNode {* int ...

最新文章

  1. 如何创建可扩展表视图中的iOS 学习和拓展优化(有待更新)
  2. 如何给安卓应用添加权限
  3. Android开发UI之Toast的使用
  4. ----------------学习进度表---------------------------------
  5. P3157 [CQOI2011]动态逆序对 (CDQ解决三维偏序问题)
  6. JFreeChart自定义拆线图
  7. 11月22日学习内容整理:bootstrap居中处理和组件,常用组件
  8. 拓端tecdat|R语言多分类logistic逻辑回归模型在混合分布模拟个人风险损失值评估的应用
  9. 视频教程-通俗易懂的JavaScript高级教程(含资料)-JavaScript
  10. 计算机控制系统直流电机闭环调速实验,51系列单片机直流电机闭环调速实验1.pdf...
  11. CPU温度过高会导致电脑死机么
  12. 掌握python和js_新华字典:掌_“掌”的意思,五笔,笔画,拼音,五行_HttpCN
  13. 使用光纤熔接机熔接光纤
  14. 行人轨迹论文阅读SSAGCN: Social Soft Attention Graph Convolution Network for Pedestrian Trajectory Prediction
  15. sqlserver Sum求和float类型 数据不准问题
  16. python爬猫眼电影影评,Python系列爬虫之爬取并简单分析猫眼电影影评
  17. Polar vector and axial vector(极矢量和轴向矢量)
  18. 【评测】小鼠肝细胞系(GHA1、AML12、BNL CL.2)培养实验操作步骤
  19. C++冗杂易忘基础知识整合
  20. 硬盘分区表丢失、修复大事记--分区表修复利器testdisk

热门文章

  1. 关于 HTTP 的一切(HTTP/1.1,HTTP/2,HTTP/3,HTTPS, CORS, 缓存 ,无状态)
  2. caffe专题五——回归中——检测框架
  3. 使用命名空间、头文件和实现文件
  4. java父子表_Java编程:将具有父子关系的数据库表数据转换为树形结构,支持无限层级...
  5. 如何用python打印田字格_如何用 3D 打印一双顶级跑鞋回形针
  6. 高地址和低地址、高字节低字节、大小端模式的转换,存储顺序
  7. 内核启动的汇编阶段——head.S文件
  8. 高版本号chrome安装flashplayer debuger后无法使用的问题
  9. HDU 1213 How Many Tables【并查集】
  10. EchoServer