链表问题
#include#include
#include
typedef struct node{
int data;
struct node *next;
}Linklist;
void createlist(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));
printf("请输入数据!\n");
scanf("%d",&p->data);
p->next=L->next;L->next=p; //头插法建立链表
}
printf("建立链表成功!\n");
}
void print(Linklist *L)
{
Linklist *p;
p=L->next;
while(p!=NULL)
{
p=p->next;
printf("%d",p->data);
}
}
int leng(Linklist *L)
{
int i=0;Linklist *p;
p=L->next;
while(p)
{
p=p->next;
++i;
}
return i;
}
int main()
{
Linklist L;
createlist(& L,5);
printf("链表的长度是%d\n",leng(& L));
// print(& L);
return 0;
}
为什么在建立链表成功之后,他的长度打印不出来,而是出现异常