#include "stdafx.h" struct Node { Node * next; int value; }; Node * reverse(Node * head) { if(!head) return NULL; Node * prev = NULL; Node * cur = NULL; Node * curNext = head; while(curNext) { cur = curNext; curNext = curNext->next; cur->next = prev; prev = cur; } return cur; } int _tmain(int argc, _TCHAR* argv[]) { Node * n1 = new Node(); Node * n2 = new Node(); Node * n3 = new Node(); n1->value = 1; n1->next = n2; n2->value = 2; n2->next = n3; n3->next = NULL; n3->value = 3; Node * temp = reverse(n1); while(temp != NULL) { printf("%d ",temp->value); temp = temp->next; } return 0; }