1.题目描述
给定一个头节点为
head
的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第cnt
个训练项目编号。
2.示例
示例 1:
输入:head = [2,4,7,8], cnt = 1 输出:8提示:
1 <= head.length <= 100
0 <= head[i] <= 100
1 <= cnt <= head.length
3.思路分析
采用双指针,将两个指针都先指向头结点,将第一个指针向前移动k个位置。然后将两个指针一起向前移动,当第一个指针为空,则第二个指针的位置就是倒数第cnt个元素的位置
4.代码
struct ListNode* trainingPlan(struct ListNode* head, int cnt) {
struct ListNode* p =head;
for(int i=1;i<=cnt;i++)
{
p=p->next;
}
while(p)
{
p=p->next;
head=head->next;
}
return head;
}
5.时间复杂度和空间复杂度
O(n/2)
O(n)