在 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