链表里这个函数怎么了?
主要是为什么不能输出这个链表?
程序代码:
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}Linklist;
Linklist *CreateList_Head(Linklist *L,int n)
{
int i;
Linklist *p;
L = (Linklist *)malloc(sizeof(Linklist));
L->next = NULL;
for(i=n;i>0;--i)
{
p = (Linklist *) malloc (sizeof(Linklist));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
return L;
}
void Output(Linklist *L)
{
Linklist *p;
p=L->next; //p指向第一个结点,为什么不是“p=L;”因为头结点无数据
if(p==NULL)
printf("linklist is empty...\n");
while(p!=NULL)
{
printf("%5d",p->data);
p=p->next;
}
printf("\n");
}
void main()
{
int m;
Linklist *L;
printf("please input m:\n");
scanf("%d",&m);
printf("head_insert is :\n");
CreateList_Head(L,m);
printf("output the list:\n");
Output(L);
}




