最近在学习链表时,遇到结构体重复调用的情况。
链表首先声明一个节点结构体变量,如下:
/*链表节点结构体*/
typedef struct ListNode
{
/*节点数据*/
int Element;
/*节点指针,用来指向下一个节点*/
struct ListNode* next;//这里不能用LinkNode * next,会报错。必须用struct ListNode* next
//即必须用结构体名进行重复定义
}LinkNode;
链表中节点结构体的声明,next必须指向相同的结构体,即指向LinkNode结构体类型,但是只能使用结构体名进行定义next。因为在定义next时,还没有运行到LinkNode部分,编译器还不认识LinkNode类型。所以会报错。