/* 链表逆转操作 Wirtten by: nick Date: 2012-10-18 19:56 */ #include <iostream> #include <iomanip> using namespace std; struct node { int item; node *next; node(int x, node* t) { item = x; next = t; } }; typedef node *link; link reverse(link x) { link t, y=x, r=0; while(y!=0) { t = y->next; y->next = r; r = y; y = t; } return r; } int main() { int n,m; n=9; m=5; link t = new node(1, 0); t->next = t; link x = t; for(int i=2; i<=n; i++) x = (x->next = new node(i, t)); x->next = 0; t = reverse(t); while(t != 0) { cout << setw(5) << t->item; t = t->next; } return 0; }