数据结构实验之链表二:逆序建立链表

TimeLimit: 1000MS Memory Limit: 65536KB

SubmitStatistic

ProblemDescription

输入整数个数N,再输入N个整数,按照这些整数输入的相反顺序建立单链表,并依次遍历输出单链表的数据。

Input

第一行输入整数N;
第二行依次输入N个整数,逆序建立单链表。

Output

依次输出单链表所存放的数据。

ExampleInput

10

113 5 27 9 12 43 16 84 22

ExampleOutput

2284 16 43 12 9 27 5 3 11

Hint

不能使用数组!

Author

B
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct node
{
  int a;
  struct node *next;

};
struct node*creat(int n)
{
  struct node *head,*p,*tail;
  head = (struct node*)malloc(sizeof(struct node));
  head->next =NULL;

  for(int i=1;i<=n;i++)
  {
     p = (struct node*)malloc(sizeof(struct node));
     p -> next= head->next;
     scanf("%d",&p->a);
     head->next = p;



  }
  return head;


}
void show(struct node *head)
{
    struct node *p;
    p = head->next;
    while(p!=NULL)
    {
       if(p->next!=NULL)
       {
         printf("%d ",p->a);
       }
       else
       {
        printf("%d\n",p->a);
       }
       p = p->next;

    }


}
int main()
{

  int n;
  scanf("%d",&n);
  struct node *head;
  head= creat(n);

  show(head);
  return 0;


}


/***************************************************
User name: jk160505徐红博
Result: Accepted
Take time: 0ms
Take Memory: 116KB
Submit time: 2017-01-12 15:26:43
****************************************************/