链表删除问题,与常规删除节点不同

跃2.0 跃2.0 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
删除要求:输入一个数字,查找所有此数字的节点全部删
我只能做到删除头,中间,末尾节点,单一的,如果有两个数是放在一起就会出现bug,甚至假如是3个数一起放在中间或者末尾又该怎么办。

void delet(int disnum,n *head) {
n t,q,p;
t=*head;
while(t) {
if(t->data==disnum) {
if(t==*head) {
*head=(*head)->next;

free(t);

} else if(t->next==NULL) {
q->next=NULL;
free(t);

} else { //bug everywhere
q->next=t->next;


free(t);
}
}
}
q=t;
t=t->next;
} //怎么把这个代码改造成我想要的,,,求助啊,,,,又没有逻辑了,,
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
跃2.0
C语言 70,039 成员 243,237 内容