C语言,请问这个销毁链表的函数写得对不对

#include
typedef int ElemType;
typedef struct node{
ElemType data;
struct node *next;
}LNode,*LinkList;

void DestroyLinkList(LinkList L)
{
if(L==NULL)
return 0;
if(L->next!=NULL)
{
p=L;
L=L->next;
free(p);
}
free(head);
head=NULL;
p=NULL;
return 0;
}

while(L!=NUllL){

if(L->next!=NULL)
{
p=L;
L=L->next;
free(p);
}
}

head 就是L
忘记改过来了

LinkList p=NULL

支持Freakshare Rapidgator Hotfile Keep2share Ryushare Filepost Lumfile Bitshare Filefactory Extabit Netload Uploaded.to Ul.to Ctdisk 等主流网盘会员直接高速下载!Ctdisk城通网盘/Dbank华为网盘完全免费!http://wishuhappy.com/ [@NC4AQkMiQAOeYhtdIoJ9lA==]