劍指offer 鍊錶 003 從尾到頭列印鍊錶

2021-10-04 07:58:46 字數 1009 閱讀 3087

輸入乙個鍊錶,按鍊錶從尾到頭的順序返回乙個arraylist。

題目所提供的的是單向鍊錶,僅有next指標,即僅能從頭到尾訪問。題目要求從尾到頭的順序返回乙個arraylist,類似於「先進後出」的思維。

利用c++的stl中的stack實現該方法。主要步驟為

遍歷鍊錶將節點值存入stack定義的棧中;

訪問棧頂元素,存入vector變數,stack變數出棧(c++的stack中pop()函式不提供返回值);

返回vector變數。

**

/**

* struct listnode

* };

*/class

solution

while

(!s.

empty()

)return v;}}

;

定義vector全域性變數,利用系統的「棧」完成輸出。

**

/**

* struct listnode

* };

*/class

solution

return v;}}

;

利用c++提供的stl方法暴力解決

**

/**

* struct listnode

* };

*/class

solution

vector<

int>

::reverse_iterator riter;

//反向迭代器

return vector<

int>

(v.rbegin()

,v.rend()

);}}

;

以上思路為個人想法和網路各位大佬的題解的結合,歡迎討論與指正。

劍指offer 從尾到頭列印鍊錶(鍊錶)

輸入乙個鍊錶,按煉錶值從尾到頭的順序返回乙個arraylist。1 將鍊錶反轉,會改變鍊錶的結構,一般不採用 2 使用棧,從頭到尾讀取資料並存入棧中,輸出棧中的全部內容 3 使用遞迴實現,遞迴在本質上就是乙個棧結構,每次列印當前值時,先列印後乙個值,使用遞迴 更簡潔。但是鍊錶過長將導致遞迴呼叫過深,...

劍指Offer 從尾到頭列印鍊錶

題目1511 從尾到頭列印鍊錶 時間限制 1 秒 記憶體限制 128 兆 特殊判題 否 提交 1082 解決 350 題目描述 輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。輸入 每個輸入檔案僅包含一組測試樣例。每一組測試案例包含多行,每行乙個大於0的整數,代表乙個鍊錶的節點。第一行是鍊錶第乙個節點的...

劍指offer 從尾到頭列印鍊錶

輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。輸入描述 輸入為鍊錶的表頭 輸出描述 輸出為需要列印的 新鍊錶 的表頭 分析 題目本意是用的棧結構的先入後出,但是有了容器類的高階方法之後,使用棧的意義就不大了。c struct listnode class solution listnode p hea...