//compile with g++ #include <iostream> using namespace std; struct Node { Node(Node* _next, int _value) { next = _next; value = _value; } ~Node() { if(next != NULL) delete next; } Node* next; int value; }; Node* reverse(Node* head) { Node* new_head = NULL; Node* current = NULL; while(head != NULL) { current = head; head = current->next; current->next = new_head; new_head = current; } return new_head; } //test void print(Node* current) { while(current != NULL) { cout << current->value << " "; current = current->next; } cout << endl; } int main() { Node* head = NULL; for(int i = 0; i < 10; i++) head = new Node(head, i); print(head); head = reverse(head); print(head); delete head; }
Thursday, May 27, 2010
How to reverse a linked list
How to reverse a linked list
Labels:
c++,
interview prep,
linked list
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment