题目描述
输入一个链表,输出该链表中倒数第k个结点。
AC C++ Solution:
使用双指针法,一个指针先移动k-1步, 然后同时移动, 快指针到达链表末尾时,慢指针即指向倒数第k个节点
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if(pListHead==NULL || k==0)
return NULL;
ListNode *fast = pListHead, *slow = pListHead;
while(--k) {
if(fast->next)
fast = fast->next;
else
return NULL;
}
while(fast->next) {
fast = fast->next;
slow = slow->next;
}
return slow;
}
};