链表中倒数第k个节点(c++双指针)
链表中倒数第k个结点
http://www.nowcoder.com/questionTerminal/529d3ae5a407492994ad2a246518148a
双指针做法
时间,空间 O(n)
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if(pListHead==NULL)
return NULL;
ListNode* p = pListHead;
ListNode* q = p;
for(int i=0;i<k-1;i++){
p=p->next;
if(p==NULL)
return NULL;
}
p=p->next;
while(p!=NULL){
p=p->next;
q=q->next;
}
return q;
}
};