C/C++教程

链表反转,C++描述

本文主要是介绍链表反转,C++描述,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

链表反转还是很绕的,对于C++,则纯粹是在玩弄指针,弄清指针和内存的关系很重要。在左侧的是指针,在右侧的是内存。

template <typename T>
struct ListStack;

template <typename T>
struct Node
{
private:
    T item;
    Node *next = nullptr;
    friend class ListStack<T>;
}

template <typename T>
struct ListStack
{
    void reverse()
    {
        Node<T> *reverse = nullptr;
        Node<T> *second = nullptr;

        while (first)
        {
            second = first->next;
            first->next = reverse;
            reverse = first;
            first = second;
        }
        first = reverse;
    }

private:
    Node<T> *first = nullptr;
    unsigned N = 0;
};

这篇关于链表反转,C++描述的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!