reverse a list
来源:互联网 发布:商标查询app软件 编辑:程序博客网 时间:2024/06/06 21:41
#include<iostream>using namespace std;class Node{public: int data; Node *next;};Node* create(){ Node *head = 0; Node *tail = 0; int i; for(i = 0; i < 10; i++){ Node *tmp = new Node(); tmp->data = i; tmp->next = 0; if(i == 0){ head = tmp; tail = tmp; }else{ tail->next = tmp; tail = tmp; } } return head;}void print(Node *head){ Node *tmp = head; while(tmp != 0){ cout<<tmp->data<<endl; tmp = tmp->next; }}Node* reverse(Node *head){ Node *tmp = head; Node *prev = 0; Node *tmpNext = tmp->next; while(tmp != 0){ tmp->next = prev; if(tmpNext == 0) break; prev = tmp; tmp = tmpNext; tmpNext = tmp->next; } head = tmp; return head;}int main(int argc, char *argv[]){ Node *head = create(); print(head); cout<<"====================="<<endl; Node *newHead = reverse(head); print(newHead); return 0;}