问题描述
- 双向链表删除尾节点失败
-
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);
}
解决方案
while(p->next->data!=x&&p->next!=NULL)
->
while(p->next!=NULL)
解决方案二:
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; //删除节点
}
解决方案三:
if(p->next->data==x)
break;
这里跳出去了,你在这里进行删除操作
时间: 2024-12-21 05:46:20