vs2013提示重定义,不同的基类型,求助大神

建立单链表并输出,LNode和LinkList出问题了,代码如下
#include <stdio.h>
#include<stdlib.h>
#include <malloc.h>
#include <conio.h>
typedef char ElemType;
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;

typedef struct list{ char data; struct list*next; }
LNode, *LinkList;
LNode *p, *q, *head;
int n;
int m = sizeof(LNode);

void build()//生成链表
{
int i;
head = (LinkList)malloc(m);
p = head;
for (i = 1; i < 26; i++)
{
p->data = i + 'a' - 1;//第一个结点值为字符a
p->next = (LinkList)malloc(m);
p = p->next;
}
p->data = 'z';
p->next = NULL;//尾结点的指针置空
}
void display()//链表输出
{
p = head;
while (p->next != NULL)
{
printf("%c", p->data);
p = p->next;
}
printf("%c\n", p->data);//输出尾结点数据
_getch();
}

typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode, *LinkList;

typedef struct list{ char data; struct list*next; }
LNode, *LinkList;
你的两个结构的命名是一样的,命名应该不同才对啊,否则你LNode指的是哪个结构呢。
温馨提示:答案为网友推荐,仅供参考