1 #include <stdio.h>
2 #include <stdlib.h>
3 struct Node
4 {
5 int value;
6 Node * next;
7 };
8
9 Node * reverse(Node * head)
10 {
11 Node * ret = NULL;
12 while (head != NULL)
13 {
14 Node * temp = head->next;
15 head->next = ret;
16 ret = head;
17 head = temp;
18 }
19 return ret;
20 }
21
22 void print(Node * head)
23 {
24 while (head)
25 {
26 printf("%d ", head->value);
27 head = head->next;
28 }
29 printf("\n");
30 }
31
32 int main()
33 {
34 Node nrr[100];
35 int i;
36 for(i=0; i<100; i++)
37 {
38 nrr[i].value = i;
39 nrr[i].next = NULL;
40 }
41 for (i=0; i<99; i++)
42 {
43 nrr[i].next = &nrr[i+1];
44 }
45 Node * temp = reverse(&nrr[0]);
46 print(temp);
47 }