链表里这个函数怎么了?
主要是为什么不能输出这个链表?程序代码:
#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); }