#include <stdio.h> typedef struct Node Node; struct Node { int data; Node * next; }; Node * reverse_linked_list (Node * node) { Node * prev = NULL; Node * next; do { next = node->next; node->next = prev; prev = node; } while ((node = next)); return prev; } int main () { Node * node; Node nodes[3]; nodes[0].data = 0; nodes[0].next = &nodes[1]; nodes[1].data = 1; nodes[1].next = &nodes[2]; nodes[2].data = 2; nodes[2].next = NULL; node = nodes; do { printf("%d", node->data); } while ((node = node->next)); node = reverse_linked_list(nodes); do { printf("%d", node->data); } while ((node = node->next)); return 0; }