C语言 关于删除结点
答案:1 悬赏:0 手机版
解决时间 2021-11-21 12:16
- 提问者网友:我的未来我做主
- 2021-11-21 05:03
C语言 关于删除结点
最佳答案
- 五星知识达人网友:你可爱的野爹
- 2021-11-21 06:05
Person * del(Person * head,int a){//查找并删除结点
Person *p,*temp;
p=head;
while(p!=NULL||(p->next)!=NULL){ //这个判断条件可能为真吗?两边需要都为假,即p == NULL同时p->next == NULL,p都为NULL了,还能获取p->next么?这不直接异常了?
temp=p->next;
if((head->age)==a){
head=head->next;
p=p->next;
}
else if((temp->age)==a)
p->next=temp->next;
else
p=p->next;
}
return head;
}
Person * del(Person * head,int a){//查找并删除结点
Person *p,*prev;
p=head;
prev=NULL;
while(p!=NULL){
if(p->age==a)
{
if(prev==NULL)
{
head=p->next;
free(p);
p=head;
}
else
{
prev->next=p->next;
free(p);
prev=p;
p=p->next;
}
}
else
{
prev=p;
p=p->next;
}
}
return head;
}
Person *p,*temp;
p=head;
while(p!=NULL||(p->next)!=NULL){ //这个判断条件可能为真吗?两边需要都为假,即p == NULL同时p->next == NULL,p都为NULL了,还能获取p->next么?这不直接异常了?
temp=p->next;
if((head->age)==a){
head=head->next;
p=p->next;
}
else if((temp->age)==a)
p->next=temp->next;
else
p=p->next;
}
return head;
}
Person * del(Person * head,int a){//查找并删除结点
Person *p,*prev;
p=head;
prev=NULL;
while(p!=NULL){
if(p->age==a)
{
if(prev==NULL)
{
head=p->next;
free(p);
p=head;
}
else
{
prev->next=p->next;
free(p);
prev=p;
p=p->next;
}
}
else
{
prev=p;
p=p->next;
}
}
return head;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯