鏈表翻轉(zhuǎn)

顧名思義:鏈表反轉(zhuǎn)
eg:4--->3---->2--->1轉(zhuǎn)為1-->2--->3---->4
實(shí)現(xiàn)原理如下 就是把當(dāng)前節(jié)點(diǎn)的next 往前賦值,然后更新cur 和pre 直到 cur==null

20200926222143340.gif
#include <iostream>
#include "LinkNode.h"
using namespace  std;


LinkNode* Reverse(LinkNode* head)
{
    LinkNode* pre = nullptr;
    LinkNode* cur = head;
    while (cur)
    {
        LinkNode* tem = cur->next;
        cur->next = pre;

        pre = cur;
        cur = tem;
    }

    return  pre;
}

int main() {
    std::cout << "Hello, World!" << std::endl;


    LinkNode *node3 = new LinkNode();
    node3->valueT = 3;
    node3->next = nullptr;

    LinkNode *node2 = new LinkNode();
    node2->valueT = 2;

    LinkNode *node1 = new LinkNode();
    node1->valueT = 1;

    LinkNode *node = new LinkNode();
    node->valueT = 0;

    node->next = node1;
    node1->next = node2;
    node2->next = node3;

    LinkNode* head = node;

    while (head!= nullptr)
    {
        cout<<"value:"<<head->valueT<<endl;
        head = head->next;
    }

    cout<<"after reverse:-------------------------------"<<endl;

    LinkNode*  reverseNode = Reverse(node);

    while (reverseNode!= nullptr)
    {
        cout<<"value:"<<reverseNode->valueT<<endl;
        reverseNode = reverseNode->next;
    }


    return 0;
}

數(shù)據(jù)結(jié)構(gòu)類

#ifndef LINKNODE_H
#define LINKNODE_H


class LinkNode {
public:
    int valueT;
    LinkNode* next;


public:
    LinkNode();
    ~LinkNode();
};


#endif //CLIONTEST_LINKNODE_H

------------------------------------------------------------------------------------------------------------------------

//
// Created by Administrator on 2022/6/29.
//

#include "LinkNode.h"

LinkNode::LinkNode() {


}
LinkNode::~LinkNode() {


}

打印結(jié)果


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。