关于C语言里malloc的用法?

typedef int ElementType;
typedef struct Node{
ElementType data;
struct Node *next;
}Node, *LinkList;

LinkList createList()
{
LinkList L;
L=(LinkList)malloc(sizeof(Node));
L->next=NULL;
return L;

}

typedef struct Student{

......

}Student;
Student* createList()
{
Student L;
L=(Student
)malloc(sizeof(Student));
.......
}

这两个都是创建链表的函数,但不知其中malloc函数前后的两个括号里应该写什么,求教

Student *L;
L=(Student *)malloc(sizeof(Student));

前面那个可要可不要,表示类型,后面那个是开辟空间的大小