从尾到头打印链表

题目描述:

输入一个链表,从尾到头打印链表每个节点的值。

 

输入:

每个输入文件仅包含一组测试样例。
每一组测试案例包含多行,每行一个大于0的整数,代表一个链表的节点。第一行是链表第一个节点的值,依次类推。当输入到-1时代表链表输入完毕。-1本身不属于链表。

 

输出:

对应每个测试案例,以从尾到头的顺序输出链表每个节点的值,每个值占一行。

 

样例输入:
1
2
3
4
5
-1
样例输出:
5
4
3
2
1
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 typedef struct List
 4 {
 5     int value;
 6     struct List *next;
 7 }List;
 8 void createList(List *L)
 9 {
10     int value;
11     List *head,*p;
12     head = L;
13     scanf("%d",&value);
14     while (value != -1)
15     {
16         p =(List *) malloc(sizeof(List));
17         p->value = value;
18         p->next = head->next;
19         head->next = p;
20         scanf("%d",&value);
21     }
22 }
23 void main()
24 {
25     List *head=NULL,*p=NULL,*temp=NULL;
26     p=head =(List*) malloc(sizeof(List));
27     head->next = NULL;
28     createList(head);
29     p=head->next;
30     free(head);
31     while(p!=NULL)
32     {           
33         printf("%d\n",p->value);
34         p = p->next;
35     }
36 }
37  
38 /**************************************************************
39     Problem: 1511
40     User: xuebintian
41     Language: C
42     Result: Accepted
43     Time:90 ms
44     Memory:3948 kb
45 ****************************************************************/

 

posted on 2014-05-17 23:37  初日  阅读(243)  评论(0编辑  收藏  举报

导航