文章目录
- 每日一言
- 题目
- 解题思路
- 代码
- 结语
每日一言
高低灯火,鼎沸笙箫。
一年三百六十日,
愿长似今宵。
题目
题目链接:链表中倒数第k个节点
给定一个头节点为 head 的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第 cnt 个训练项目编号。
- 示例 1:
输入:head = [2,4,7,8], cnt = 1
输出:8
提示:
1 <= head.length <= 100
0 <= head[i] <= 100
1 <= cnt <= head.length
解题思路
使用快慢指针法:
让快指针先走cnt步,之后让两个指针同速前进,快者走完而领先cnt步
代码
/**
* 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;//慢指针
//让快指针向后走cnt步
while(cnt--)
{
fast = fast->next;
}
//让快指针向后走到头,同时让慢指针开始走,
while(fast)
{
fast = fast->next;
slow = slow->next;
}
//此时slow就是题目所要的
return slow;
}
结语
请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!
都看到这里啦!真棒(*^▽^*)
可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家
编程小白写作,如有纰漏或错误,欢迎指正