链表问题为什么end=node不能用end=end->next代替

初始化一个链表,n为链表节点个数。

LinkList *creat(int n){
LinkList *head, *node, end;//定义头节点,普通节点,尾部节点;
head = (LinkList
)malloc(sizeof(LinkList));//分配地址
end = head; //若是空链表则头尾节点一样
for (int i = 0; i < n; i++) {
node = (LinkList*)malloc(sizeof(LinkList));
scanf("%d", &node->score);
end->next = node;
end = node;
}
end->next = NULL;//结束创建
return head;

为什么end = node;不能是end=end->next