定义单向链表:输入若干个正整数(输入-1为结束标志),要求按输入数据的逆序并输出。
输入样例:
1 2 3 4 5 6 7 -1
输出样例:
7 6 5 4 3 2 1
我的答案
#include <stdio.h>
#include<stdlib.h>
typedef struct List{
int num;
struct List* next;
} List;
List* Create();
void Print(List* head);
int main(void)
{
List* head=Create();
Print(head);
return 0;
}
void Print(List* head)
{
List* p;
p=head;
printf("%d",p->num);
p=p->next;
for(; p!=NULL; p=p->next)
{printf(" %d",p->num);}
}
List* Create() //学习此处的方法!
{
List* head,*p;
head=NULL; //head一开始指NULL方便直接进入循环,省略开始的讨论!
while(1)
{
p=(List*)malloc(sizeof(List));
scanf("%d",&p->num); if(p->num==-1) {return head;}
p->next = head;
head=p;
}
}