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;}

原创粉丝点击