利用快慢指针的方法
初始快慢指针都指向头节点,让快指针先走k步,然后快慢指针一起走,当快指针指向空的时候,慢指针刚好走到倒数第k个结点。
注意判空。
if(head==NULL) return NULL//判断连表是否为空
ListNode *fast=head;//快指针指向头节点
ListNode *slow=head;//慢指针指向头节点
for(int i=0;i<k;i++)//让快指针先走k步
{
fast=fast->next;
}
while(fast)//循环条件 当快指针不为空
{
fast=fast->next;//快慢指针一起走
slow=slow->next;//快慢指针一起走
}
return slow;//返回慢指针 即倒数第k个结点