题目描述
输入一个链表,输出该链表中倒数第k个结点。
/*
思路:
构造快慢指针,先让快指针先走k步,再快慢指针一起走。
当快指针走到链表最后一个元素时,慢指针真好走到倒数第k个元素
*/
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
ListNode* slow = pListHead;
ListNode* fast = pListHead;
while(fast){
if(k==0){
slow = slow->next;
}
fast = fast->next;
if(k>0)
k--;
}
return k==0?slow:NULL;
}
};