在 C++ 中以相反顺序打印不可变链表
假设我们有一个不可变的链表,我们必须借助以下界面以相反的顺序打印出每个节点的所有值 −
ImmutableListNode − 这是不可变链表的界面,可以为我们提供列表的头。
我们必须使用以下函数来访问链接列表 −
ImmutableListNode.printValue() − 这将打印当前节点的值。
ImmutableListNode.getNext() − 这将返回下一个节点。
因此,如果列表类似于:[0, -4, -1, 3, -5],则输出将为 [-5, 3, -1, -4, 0]
要解决此问题,我们将遵循以下步骤 −
为 ImmutableListNode 类型节点定义一个栈 st
在头不为 null 的同时
将头插入 st
头 := 头的下一个
在 st 不为空的同时
打印堆栈顶节点的值
从堆栈中删除节点
示例(C++)
让我们查看以下实现,以获得更好的理解 −
class Solution {
public:
void printLinkedListInReverse(ImmutableListNode* head) {
stack <ImmutableListNode*> st;
while(head){
st.push(head);
head = head->getNext();
}
while(!st.empty()){
st.top()->printValue();
st.pop();
}
}
};输入
[0,-4,-1,3,-5]
输出
[-5,3,-1,-4,0]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP