问题描述: 找出链表倒数第k个节点
思路:设置快慢指针。先让快指针走k步,然后慢指针一起走。当快指针走到头时, 慢指针指向倒数第k个节点。
LinkList findLastK(LinkList head, int k)
{
if(head == NULL || head->next == NULL)
return NULL;
LNode* slow, *fast;
slow = fast = head->next;
int I = 0;
for(;I<k&&fast; I++)
fast = fast->next;
if(I<k)
return NULL; # k超过链表长度
while(fast)
{
fast = fast->next;
slow = slow->next;
}
return slow;
}