数据结构、typedef struct、链表

最近刚开始学习数据结构的链表,对下面这一串代码不是很懂,第四行的LNode和*LinkList是什么意思?看到有一种解释说第一行的LNode是结构体的本名,第四行的LNode是结构体的别名,如果是这样的话,两个名字都一样那意义是什么
typedef struct LNode
{int data;
struct LNode *next;
}LNode,*LinkList;


typedef struct LNode
{
    int data;              // 数据域,存储节点的数据
    struct LNode *next;    // 指针域,指向下一个节点的指针
} LNode, *LinkList;


使用 typedef 定义了一个结构体类型 LNode,并通过别名 LinkList 定义了一个指向 LNode 结构体的指针类型. 如有帮助给个采纳谢谢