#include <stdio.h>
#include <stdlib.h>
struct LinkList
{
int data;
struct LinkList next;
};
void CreatList_1(struct LinkList);
void PrintList(struct LinkList*);
int main()
{
struct LinkList *La;
CreatList_1(La);
PrintList(La);
return 0;
}
void CreatList_1(struct LinkList *head)
{
int i,n;
struct LinkList *p;
head=(struct LinkList *)malloc(sizeof(struct LinkList ));
head->next=NULL;
scanf("%d",&n);
for(i=0;i<n;i++)
{
p=(struct LinkList*)malloc(sizeof(struct LinkList));
scanf("%d",&p->data);
p->next=head->next;
head->next=p;
}
}
void PrintList (struct LinkList *head)
{
struct LinkList *p;
p=head->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
逆序创建链表,为什么我这个没有输出啊?要怎么改啊?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- qzjhjxj 2022-11-01 19:24关注
建立链表通过函数返回头结点,修改如下,供参考:
#include <stdio.h> #include <stdlib.h> struct LinkList { int data; struct LinkList* next; }; struct LinkList* CreatList_1(); //修改 //void CreatList_1(struct LinkList); void PrintList(struct LinkList*); int main() { struct LinkList *La; La = CreatList_1(); //CreatList_1(La); 修改 PrintList(La); return 0; } struct LinkList* CreatList_1() //void CreatList_1(struct LinkList *head) { int i,n; struct LinkList *head, *p; //修改 head=(struct LinkList *)malloc(sizeof(struct LinkList )); head->next=NULL; scanf("%d",&n); for(i=0;i<n;i++) { p=(struct LinkList*)malloc(sizeof(struct LinkList)); p->next=NULL; //修改 scanf("%d",&p->data); p->next=head->next; head->next=p; } return head; } void PrintList (struct LinkList *head) { struct LinkList *p; p=head->next; while(p) { printf("%d ",p->data); p=p->next; } printf("\n"); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来