#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();
}