#include<stdio.h>
#include<stdlib.h>
//这个代码里面,我没有将链表L的指针next,指向下一个地址,为什么程序没出错,可以正常输出呢?
typedef struct LNode
{
int data;
struct LNode *next;
} LinkList,LNode;
LinkList *CreateList()
{
LinkList *head ,*L,*tail;
head=NULL;
tail=NULL;
int n;
printf("请输入函数的个数:\n");
scanf("%d",&n);
printf("请输入%d个元素\n",n);
int i;
for(i=n;i>=1;i--)
{
L=(LinkList*)malloc(sizeof(LNode));
if(head==NULL)
head=L;
else
tail->next=L;
scanf("%d",&L->data);
L->next=NULL;
tail=L;
}
L=head;
return head;
}
void PrintList_L(LinkList *L)
{
LinkList *p;
p=L;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int main()
{
LinkList *L;
L=CreateList();
PrintList_L(L);
}
明明都赋值为NULL了啊。CreateList返回的就是内部的head指针,在循环创建的时候,都给next赋值为空了,你为啥数没有呢?
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632