当前位置: 移动技术网 > IT编程>开发语言>C/C++ > 单链表反转

单链表反转

2018年01月20日  | 移动技术网IT编程  | 我要评论

漾怎么组词,喝敌敌畏,弄月 草食性恐龙

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

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网