C语言链表,我的代码编译错误怎么修改

我的代码哪里错了啊,我刚学链表,我感觉理论上没有错,但是它编译是错的

img

img

element是一个指针,你的while循环里第一个if的判断条件却用p->data与element进行相等判断。应该使用p->next == element. 代码需要改成:

LLIST *p, *q;
p = list;
while(p != NULL && p === element) {
  p = p->next; //  如果element是头指针,就要把头指针删除
}
while(p != NULL) {
  if (p->next == element) {
    p->next = p->next->next; // 如果下一个节点是element,就要修改next指针,跳过它
  } else {
    p = p->next;
  }
}