给定一个头节点为 head
的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第 cnt
个训练项目编号。
示例 1:
输入:head = [2,4,7,8], cnt = 1
输出:8
提示:
1 <= head.length <= 100
0 <= head[i] <= 100
1 <= cnt <= head.length
题解:
要返回倒数第cnt个节点,可以使用快慢指针。
先让fast指针先走cnt个结点,然后fast和slow一起走,直到fast为NULL时,停下来,此时slow指针指向的结点就是要返回的结点
举个例子:

/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* trainingPlan(struct ListNode* head, int cnt) {
struct ListNode*fast=head;
struct ListNode*slow=head;
while(cnt--)//快指针先走k步
{
fast=fast->next;
}
while(fast!=NULL)
{
fast=fast->next;
slow=slow->next;
}
return slow;
}
