不可以去掉的,如果去掉next的类型,不好定义了;用你的定义方法,无法通过编译,在遇到struct Lnode时,编译器不知何类型!所以要定义为typedef struct Lnode { elemtype data; struct Lnode * next; //此时遇到struct Lnode,编译器知道是一个结构体类型} LNode,* LinkList;