2 lulubuhaore lulubuhaore 于 2016.02.17 19:10 提问

双向链表删除尾节点失败

void Delete(DLNode *C,int x)
{
DLNode *p=C,*q;
while(p->next->data!=x&&p->next!=NULL)
{
if(p->next->data==x)
break;
p=p->next;
}
if(p->next==NULL)
{
return;
}
q=p->next;
p->next=q->next;
q->next->prior=p;
free(q);
}

3个回答

caozhy
caozhy   Ds   Rxr 2016.02.17 20:16

while(p->next->data!=x&&p->next!=NULL)
->
while(p->next!=NULL)

github_27756899
github_27756899   2016.02.20 14:24

while(p->next->data!=x&&p->next!=NULL)
{
if(p->next->data==x)
break;
p=p->next;
}

改为:

while(p->next->data!=x&&p->next->next!=NULL)
{
p=p->next;
}
if(p->next->data==x)
{
//p->next空间的相关操作
p->next=p->next->next; //删除节点
}

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.17 19:28

if(p->next->data==x)
break;

这里跳出去了,你在这里进行删除操作

lulubuhaore
lulubuhaore 放进来进行操作也是一样出错
接近 2 年之前 回复
lulubuhaore
lulubuhaore 我这里break出去之后进行了删除操作啊,但是删不掉会出错
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!