//用鱼币买了课件为了验证看到视频里面的错误。。。
小甲鱼老师, 您在使用快指针和慢指针 获取单链表中间结点时,循环中的代码有误。
小甲鱼老师的代码:Status GetMidNode(LinkList L, ElemType *e)
{
LinkList search, mid;
mid = search = L;
while (search->next != NULL)
{
//search移动的速度是 mid 的2倍
if (search->next->next != NULL)
{
search = search->next->next;
mid = mid->next;
}
else
{
search = search->next;
}
}
*e = mid->data;
return OK;
}
其中的循环应该是:while(search->Next)
{
mid = mid->Next;
if(search->Next->Next)
{
search = search->Next->Next;
}
else search = search->Next;
}
每次循环,慢指针的移动不应该在判断快指针是否能移动两个结点中。
|