比如 0-1-2,倒数第三个节点是0.
此题用快慢指针,特别注意 边界吧!!!
第一个指针 先走 k-1步,判断时要判断 p->next != NULL;
/*
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 (k<=0 || pListHead==NULL)return nullptr;
ListNode* p = pListHead;
ListNode* r = pListHead;
for (int i=0;i<k-1;i++)
{
/*if (p==NULL)return nullptr;
else {
p = p->next;
}*/
if (p->next){
p = p->next;
}
else return nullptr;
}
while(p->next)
{
p = p->next;
r = r->next;
}
return r;
}
};