反转单链表

思路:三个指针实现原地反转,不懂的看代码

点击查看代码

#include <iostream>
using namespace std;

//博客园有时候不常看消息,有相关代码疑问的可以联系我,请注明来意,wx:A470216705

struct Node {
    Node* next;
    int value;
};

Node* linkList_inversion(Node* head)
{
    if (head == NULL)
        return NULL;
    Node* behind = NULL;
    Node* current = head;
    Node* pre = head->next;

    while (current != NULL)
    {
        current->next = behind;
        behind = current;
        current = pre;
        if(pre != NULL)
            pre = pre->next;
    }
    return behind;

}

void print_list(Node* head)
{
    Node* p = head;
    while (p != NULL)
    {
        cout << p->value<<"  ";
        p = p->next;
    }
    cout << endl;
}

int main()
{
    Node* head = new Node;
    head->next = NULL;
    head->value = 2;

    Node* p1 = new  Node;
    head->next = p1;
    p1->value = 87;

    Node* p2 = new  Node;
    p1->next = p2;
    p2->value = 43;


    Node* p3 = new  Node;
    p2->next = p3;
    p3->value = 43;
    p3->next = NULL;

    print_list(head);
   
    Node* new_head = linkList_inversion(head);
    print_list(new_head);
   
    return 0;
}

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...