【剑指Offer】链表中倒数第k个结点
程序员文章站
2022-04-29 23:06:22
题目描述 输入一个链表,输出该链表中倒数第k个结点。 解法 基本思路是使用两个辅助指针p, q,让p先走k 1步后,p, q两个指针再一起走 这样当p指针走到链表的末尾时,q指针刚好走到的就是倒数第k个结点 如下图所示 实现代码 更多算法题目的完整描述,AC代码,以及解题思路可以查看GitHub仓库 ......
题目描述
输入一个链表,输出该链表中倒数第k个结点。
解法
基本思路是使用两个辅助指针p, q,让p先走k - 1步后,p, q两个指针再一起走
这样当p指针走到链表的末尾时,q指针刚好走到的就是倒数第k个结点
如下图所示
实现代码
public listnode findkthtotail(listnode head, int k) { listnode p = head, q = null; while(p != null){ if(q != null) q = q.next; else if(--k == 0) q = head; p = p.next; } return q; }
更多算法题目的完整描述,ac代码,以及解题思路可以查看github仓库algorithm
推荐阅读
-
数据结构之链表中倒数第k个结点(C++/Java语言实现)
-
剑指offer25:复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),结果返回复制后复杂链表的head。
-
python实现单链表中删除倒数第K个节点的方法
-
剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)
-
剑指offer JZ54 字符流中第一个不重复的字符 Python 多解
-
PHP获取链表中倒数第K个节点的方法
-
【剑指Offer】链表中倒数第k个结点
-
链表中倒数第k个节点最简单的实现方式--python
-
leetcode 160剑指offer面试题52. 两个链表的第一个公共节点(python3)
-
剑指offer——合并两个排序的链表