令一个指针先从表头走K-1步,从第K步开始,另一个指针也从表头开始遍历,当第一个指针遍历到链表末尾时,第二个指针刚好指向链表的倒数第K个节点。
LNode *find_KtoTail(LNode *head, int k)
{
if(head != NULL && k>0)
{
LNode *p_first = head;
LNode *p_second = head;
for(int i=0;i<k;++i)
{
p_first = p_first->next;
if(p_first == NULL)
return NULL;
}
while(p_first->next != NULL)
{
p_first = p_first->next;
p_second = p_second->next;
}
return p_second;
}
}