我在C中写了删除功能,删除整个链表。功能的定义是
void delete(LIST **head)
{
if(head)
{
delete(head->next);
free(head);
*head=NULL;
}
}
编译时我收到错误:请求成员next
的东西不是结构或联合。
结构是
typedef struct node{
int data;
struct node *next;
};
答案 0 :(得分:4)
head
是指向LIST
指针的指针。您需要取消引用它 - *head
- 才能获得LIST*
来操作
void delete(LIST **head)
{
if(*head)
{
delete(&(*head)->next);
free(*head);
*head=NULL;
}
}