题解 | #链表中倒数最后k个结点#
链表中倒数最后k个结点
https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9
C语言版本 快慢指针法
struct ListNode* FindKthToTail(struct ListNode* pHead, int k ) {
// write code here
//双指针法
struct ListNode *pfast, *pslow;
pfast = pHead, pslow = pHead;
for(int i = 0; i < k; i++){ //找到距slow K个位置的fast
if(!pfast) //如果fast不存在,表示已经找到末尾,返回NULL
return NULL;
pfast = pfast->next;
}
while(pfast){ //如果fast一直存在,则快慢指针一起向后移动,
pfast = pfast->next; //直到fast找到末尾,退出
pslow = pslow->next;
}
return pslow;
}