一段小程序,大神帮忙看看
以下是一段链表程序,链表创建和输出函数都没有问题,但是这个函数执行时好像陷入了死循环,我找不到问题在哪里,大神们帮忙看下,多谢了void deletelink(int min,int max,linknode *phead)//给出增序链表头指针,删除大于 min 小于max的链表
{
linknode *pa,*pb,*pc,*pnow=phead;
while(pnow->next!=NULL&&pnow->next->data<=min)
{
pnow=pnow->next;
}//链表有头结点,假设链表有9元素,头结点值为0;0-1-2-3-4-5-6-7-8-9,头结点不包括在内,min=2,max=5。先让pnow循环 至 2处
pa=pnow;//pa=2
pnow=pnow->next;
pb=pnow; //pb=pnow=3
if(pnow!=NULL)//若pnow不空
{
while(pnow!=NULL&&pnow->data<max)
{
pnow=pnow->next;
}//让pnow循环至 5 处
pa->next=pnow;//2 指向 5
while(pb!=pnow)//删除 3开始 一直到5之前的节点
{
pc=pb;
pb=pb->next;
free(pc);
}
}
}