大家好,欢迎来阅读子豪的博客(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; }