#ifndef MYLIST_H #define MYLIST_H #include <stdio.h> class Node { public: Node(int v){value = v;next=NULL;} int value; Node * next; }; class List { public: List(){ head = tail = NULL; } void addNode(Node *node){ if(head==NULL){ head = node; } if(tail==NULL){ tail = node; }else{ tail->next = node; tail = node; } } void ReverseList(List * srcList){ Node * p = srcList->head; Node * t = NULL; Node * q = NULL; while(p){ t = p; p = p->next; t->next = q; q = t; } srcList->head = q; } void printList(){ Node * p = head; while(p){ printf("value:%d ",p->value); p = p->next; } } public: Node * head,*tail; }; #endif // MYLIST_H
#include <QCoreApplication> #include "mylist.h" int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); List * myList = new List(); for(int i=1;i<=5;i++){ Node * node = new Node(i); myList->addNode(node); } myList->ReverseList(myList); myList->printList(); return a.exec(); }