刷题使我快乐,满脸开心.jpg
- 来源:力扣(LeetCode)
- 链接:https://leetcode.cn/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/
- 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题目
给定一个头节点为 head
的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第 cnt
个训练项目编号。
示例 1:
输入:head = [2,4,7,8], cnt = 1
输出:8
提示:
1 <= head.length <= 100
0 <= head[i] <= 100
1 <= cnt <= head.length
思路
快慢指针的又一种使用,先让快指针走出去cnt
个,再跟随上慢指针,那么快指针到尾部的next
时,慢指针就正好指向倒数第cnt
个节点了~
之前发布过另外一个形式的题目,基本没有太大的区别:
LeetCode-19. 删除链表的倒数第 N 个结点
上代码。
代码
func trainingPlan(head *ListNode, cnt int) *ListNode {
fast := head
slow := head
for cnt > 0 {
fast = fast.Next
cnt--
}
// 没到头则slow跟随走动
// fast停下时
// slow的下一个节点就是要找的节点
for fast != nil {
fast = fast.Next
slow = slow.Next
}
return slow
}