废话不多说直接上代码
注意传参 使用的是指针的指针,否则链表得不到初始化和创建。对用指针作为参数,且要改变实参指针指向,不懂的同学可以参考这篇博客的最下面部分https://blog.csdn.net/qq_54628272/article/details/122778928?spm=1001.2014.3001.5501
#include<stdio.h>
#include<malloc.h>
typedef struct lnode
{
int data;
struct lnode *next;
}lnode,*linklist;
void initlist( lnode **L)
{
(*L)=(lnode *)malloc(sizeof(lnode));
(*L)->data=0;
(*L)->next=NULL;
}
void creatlist(struct lnode **L)
{
lnode *s,*r;
int e,i=1;
r=(*L);
while(i<4)
{
printf("请输入值\n");
scanf("%d",&e);
s=(lnode *)malloc(sizeof(lnode));
s->data=e;
s->next=r->next;
r->next=s;
r=s;
i++;
}
printf("构造完成\n");
}
int main()
{
linklist L;
initlist(&L);
creatlist(&L);
lnode *p=L->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
//printf("%d",L->data);
return 0;
}
运行结果