问一个关于链表删除释放的问题
structNode*deleteNode(structNode*head){structNode*p1,*p2,*p3;p2=p1=head;while(p1!=NUL...
struct Node* deleteNode(struct Node *head)
{
struct Node *p1,*p2,*p3;
p2=p1=head;
while(p1!=NULL)
{
if(p1->data%2!=0)
{
p2=p1;
p1=p1->next;
}
else
{
if(p1==head) head=p1->next;
else
{ p3=p2->next;
p2->next=p1->next;
p1=p1->next;
if(p3!=NULL)
{
delete(p3);
}
}
}
}
是偶数就把节点删除,但是释放删除节点的空间时程序会崩溃,哪里错了?比如输入 4 3 -1 展开
{
struct Node *p1,*p2,*p3;
p2=p1=head;
while(p1!=NULL)
{
if(p1->data%2!=0)
{
p2=p1;
p1=p1->next;
}
else
{
if(p1==head) head=p1->next;
else
{ p3=p2->next;
p2->next=p1->next;
p1=p1->next;
if(p3!=NULL)
{
delete(p3);
}
}
}
}
是偶数就把节点删除,但是释放删除节点的空间时程序会崩溃,哪里错了?比如输入 4 3 -1 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询