- 输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序建立一个链表,并输出。
输入输出示例:
1 2 3 4 5 6 7 -1
7 6 5 4 3 2 1
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int data;
struct node *next;
}Lnode,*LinkList;
int m=sizeof(Lnode);
void CreateListHead(head);
void PrintList(head);
void freelist(LinkList head);
int main()
{ struct node *head;
head=(LinkList)malloc(m);
CreateListHead(head);
TraverseList(head);
return 0;
}
void CreateListHead(LinkList head)
{ LinkList s;
head->next=NULL;
int n;
scanf("%d",&n);
while(n!=-1)
{
s=(LinkList)malloc(m);
s->data=n;
s->next=head->next;
head->next=s;
scanf("%d",&n);
}
}
void TraverseList(LinkList head)
{
LinkList p;
p=head->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
}
void freelist(LinkList head)
{
LinkList cur,next;
cur=head->next;
head->next=NULL;
while(cur)
{
next=cur->next;
free(cur);
cur=next;
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331225215700.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NvZGV3b25kZXJmdWw=,size_16,color_FFFFFF,t_70#pic_center)