/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
long count =0;
ListNode* node = pListHead;
while(node != NULL){
node = node->next;
count ++;
}
if (pListHead ==NULL || k ==0 || k> count){
return NULL;
}
ListNode* first = pListHead;
ListNode* second = pListHead;
for (int i = k-1; i>0;i--){
if (first ->next!= NULL){
first = first->next;
}
}
while (first ->next!= NULL){
first = first->next;
second = second->next;
}
return second;
}
};