思路:两个指针一前一后,相差k-1,当后指针到达最后一个结点时,前一指针正好指向是所求结点
ListNode *FindKthToTail(ListNode* pListHead,unsigned int k)
{
if(pListHead==NULL||k==0)
return NULL;
ListNode *pAhead=pListHead;
ListNode *pBehind=NULL;
for(unsigned int i=0;i<k-1;++i)
{
if(pAhead->next!=NULL)
pAhead=pAhead->next;
else
{
return NULL;
}
pBehind=pListHead;
while(pAhead->next!=NULL)
{
pAhead=pAhead->next;
pBehind=pBehind->next;
}
return pBehind;
}