起初我是这么写的:
struct node * deletenode(struct node *head,int b){ struct node *pre,*cur; pre=null; cur=head; if(head&&head->data==b){ head=head->next; free(cur); } else{ while(cur->data!=b){ pre=cur; cur=cur->next; } pre->next=cur->next; free(cur); } return head; }
结果提交时说段错误,改成下面这样就通过了,暂时还不知道为啥。。。
struct node * deletenode(struct node *head,int b){ struct node *pre,*cur; pre=null; cur=head; if(head&&head->data==b){ head=head->next; free(cur); } else{ while(cur){ if(cur->data==b){ pre->next=cur->next; free(cur); } pre=cur; cur=cur->next; } return head; } }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/601911.html