题目: 输入一个链表, 输出该链表中倒数第 k 个结点.
这道题可以用快慢指针做, 先让 first 指针走 k 步, 然后 first 和 second 指针一起走, 直到 first 指针走到空, 这时候 second 指针就指向倒数第 k 个结点.
c++ 代码如下:
- class Solution {
- public:
- ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
- auto first = pListHead, second = pListHead;
- while(k--){
- if(first) first = first->next;
- else return nullptr;
- }
- while(first){
- first = first->next;
- second = second->next;
- }
- return second;
- }
- };
来源: http://www.bubuko.com/infodetail-3343418.html