C++实现单向链表的逆向打印

您所在的位置:网站首页 逆序打印单链表 C++实现单向链表的逆向打印

C++实现单向链表的逆向打印

2024-07-12 07:54| 来源: 网络整理| 查看: 265

本文章记录了实现链表的逆向打印的方法。首先一个比较简单的实现方法是,将链表的所有指针全部反向,这种方法是不值得推荐的,因为打印操作一般是一个只读的过程,很少可以修改要打印的内容。所以在这里我们记录一下比较好的一些实现方法。

首先我们可以考虑,反向输出链表的过程实际上是一个先入后出的过程,从头到尾遍历链表,先读到的内容是后打印的。这就让我们想到了stack这一数据结构,我们可以在每读取到一个节点时,将该节点放到栈中,遍历完成整个链表之后,从栈顶逐个输出节点的值,就直接实现了逆向输出的过程。代码如下:

void PrintListReversingly(ListNode* pHead) { stack nodes; ListNode* pNode = pHead; // 使用stack存储实现先进后出 while (pNode != nullptr) { nodes.push(pNode); pNode = pNode->next; } while (!nodes.empty()) { pNode = nodes.top(); cout key next != nullptr) { PrintListReversinglyRecursively(pHead->next); } cout key


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3