😶🌫️😶🌫️😶🌫️😶🌫️Take your time ! 😶🌫️😶🌫️😶🌫️😶🌫️
💥个人主页:🔥🔥🔥大魔王🔥🔥🔥
💥所属专栏:🔥魔王的修炼之路–数据结构🔥
如果你觉得这篇文章对你有帮助,请在文章结尾处留下你的点赞👍和关注💖,支持一下博主。同时记得收藏✨这篇文章,方便以后重新阅读。
十、链表中倒数第k个结点
十、链表中倒数第k个结点
思路
这题和上一题相似,也是用的快慢指针的方法:让快指针先走k个,然后一起走,最后当快指针位NULL时,慢指针就是倒数第k个结点。
代码
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
/**
*
* @param pListHead ListNode类
* @param k int整型
* @return ListNode类
*/
struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {
struct ListNode* prev, *cur;
prev = cur = pListHead;
if (k <= 0) {
return NULL;
}
if (pListHead == NULL) {
return NULL;
}
while (k--) {
cur = cur->next;
if (cur == NULL && k >= 1) {
return NULL;
}
}
while (cur) {
cur = cur->next;
prev = prev->next;
}
return prev;
}
有的判断部分读题可能并不能直到,是根据输出样例来判断的,比如如果k大于链表结点的个数,要返回NULL;如果k小于等于0,也需要返回NULL。
- 博主长期更新,博主的目标是不断提升阅读体验和内容质量,如果你喜欢博主的文章,请点个赞或者关注博主支持一波,我会更加努力的为你呈现精彩的内容。
🌈专栏推荐
😈魔王的修炼之路–C语言
😈魔王的修炼之路–数据结构初阶
😈魔王的修炼之路–C++
😈魔王的修炼之路–Linux
更新不易,希望得到友友的三连支持一波。收藏这篇文章,意味着你将永久拥有它,无论何时何地,都可以立即找到重新阅读;关注博主,意味着无论何时何地,博主将永久和你一起学习进步,为你带来有价值的内容。