C++ Program:
Reverse of a linked list. Write a method Node *Node::reverse () which reverses a list.
#include
struct node { int data; node *next; }; node *reverse(node *list) { node *prev = NULL; node *next; while (list) { next = list->next; list->next = prev; prev = list; list = next; } return prev; } void show_list(node *list) { while (list != NULL) { std::cout << list->data << \", \"; list = list->next; } } int main() { node *list = NULL; for (int i=0; i<10; i++) { node *n = new node; n->next = list; n->data = i; list = n; } std::cout << \"As built: \"; show_list(list); list = reverse(list); std::cout << \"Reversed: \"; show_list(list); return 0; }