题解 | #链表中倒数最后k个结点#
链表中倒数最后k个结点
https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9
//参考了剑指offer中记载的快慢指针法。快指针提前走k-1步。快指针抵达终点时慢指针就能到倒数第k个节点处了。例:1->2。求倒数第1个节点。提前走0步。快慢指针一起到最后一个节点。 class Solution { public: ListNode* FindKthToTail(ListNode* pHead, int k) { if(pHead==nullptr || k<=0) return nullptr; int times=k-1; ListNode* fast=pHead; ListNode* slow=pHead; for (int i=k-1; i>0; i--) { if(fast->next==nullptr) { return nullptr; }else { fast=fast->next; } } while (fast->next!=nullptr) { fast=fast->next; slow=slow->next; } return slow; } };