两种代码。
一种利用结构体
#include <iostream>
using namespace std ;
void main()
{ struct Node { Node* next; int c ; Node(int i){c=i;}; }; Node* head = new Node(0);
Node* tail = head ; for (int i = 1 ; i<10 ; i++)
{ Node* p = new Node(i); head->next = p; head = p; } head->next = NULL; Node* _next = NULL; Node* p; do { p = tail->next; tail->next = _next; _next = tail ; tail = p; }while(tail->next != NULL); tail->next = _next ; while(NULL != tail ) { cout<<tail->c<<endl; tail=tail->next; } }
另一种就是利用类 #include <iostream> using namespace std; class node
{ public: node(int x):data(x),next(0){} int data; node* next; }; node* reverse(node* head)
{ if(0==head) return head; node* __next=head->next;
if(0!=__next) { node* n=reverse(__next); __next->next=head; head->next=0; return n; } else return head; } int main()
{ node* head=new node(0); node* tail=head; for(int i=1;i<10;i++) { node* p=new node(i); tail->next=p; tail=p; } head=reverse(head); while(0!=head) { cout<<head->data<<endl; head=head->next; } return 0;
} |
|