大家好,欢迎来阅读子豪的博客(LeetCode刷题篇)
大家有什么宝贵的意见或建议可以在留言区留言
如果你喜欢我的博客,欢迎 素质三连 点赞 关注 收藏
我的码云仓库:补集王子 (YZH_skr) - Gitee.com
目录

思路一:倒数第k个 就是顺数第n-k个
但是得遍历两遍
思路二:设置快慢指针

让快指针先走k个,然后再同时走,直到fast到NULL
图表演示

fast走到空

其他问题
空指针问题
如果他只给你一个链表,或者k大于了链表的长度
解决方法:判断下fast,然后返回空
最终代码
struct ListNode* FindKthToTail(struct ListNode* pListHead, int k )
{
struct ListNode* slow,*fast;
slow = fast = pListHead;
while(k--)
{
if(fast==NULL)
{
return NULL;
}
fast=fast->next;
}
while(fast)
{
slow=slow->next;
fast=fast->next;
}
return slow;
}
LeetCode刷题解析:寻找链表倒数第k个节点
这篇博客介绍了两种方法找到链表中的倒数第k个节点:一是通过两次遍历,二是使用快慢指针技巧。详细解释了快慢指针的实现过程,并提供了代码示例。还讨论了处理空指针和k超出链表长度的情况。
3万+

被折叠的 条评论
为什么被折叠?



