中易网

C语言链表一道题,跪求大神

答案:2  悬赏:10  
解决时间 2021-01-16 20:55
  • 提问者网友:未信
  • 2021-01-15 20:50
C语言链表一道题,跪求大神
最佳答案
  • 二级知识专家网友:长青诗
  • 2021-01-15 21:56
//删除所有无效数值结点的函数原型:
void deleteneg(PNODE head)
{
PNODE p,q;         
p = head; 
q = head;
while ( p->next != NULL )         
{   
if( p->next->data < 0)
{
p->next = p->next->next;
p = q;
}
q = p;
p = p->next;         

}
追问:
如图,左边是输入,中间是期待输出,右边是实际输出,程序还有缺陷,怎么改进?

追答:sorry~~~

//删除所有无效数值结点的函数原型:
void deleteneg(PNODE head)
{
PNODE p,prev;
p = head->next;
prev = NULL;

while ( p != NULL )
{
if( p->data < 0)
{
if(prev == NULL)
{
head->next = p->next;
free(p);
p = head->next;
}
else
{
prev->next = p->next;
free(p);
p = prev;
p = p->next;
}
}
else
{
prev = p;
p = p->next;
}
}
}
全部回答
  • 1楼网友:零点过十分
  • 2021-01-15 23:21
北理工的大兄弟阿
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息