C语言关于链表删除某个节点的问题,不知道写法,麻烦指点

2025-03-21 07:49:17
推荐回答(1个)
回答1:

struct node *delete(struct node* head)//删除函数
{
printf("请输入要删除的学生姓名");
char k[100];
scanf("%s", k);
struct node *pre = NULL;
struct node *q   = head;
while (q) {
if (strcmp(q->data.name, k) == 0){
if (pre)
pre->next = q->next;
else 
head = q->next;
free(q);
break;
}
pre = q;
q = q->next;
    }
return head;
}