劍指offer 從尾到頭列印鍊錶 03 67

2021-10-03 12:22:51 字數 1235 閱讀 4845

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

一般的思維來講,該題直接建立鍊錶,然後在建立鍊錶的時候,直接建立的是反轉的鍊錶,題型鏈結如下:

資料結構實驗之鍊表二:逆序建立鍊錶

該題的要求是返回乙個arraylist(陣列),不能簡單的使用輸入輸出實現

push(x) – 壓乙個數到棧頂

pop() – 移除棧頂的元素,不返回任何物件

top() – 返回棧頂端的元素

getmin() – 檢索棧中的最小值

建立乙個vector型別的陣列(result)

建立乙個棧(stack-arr),用來做鍊錶和陣列之間的傳遞

遍歷鍊錶,將鍊錶中的數值依次使用push來依次壓到棧頂

型別如下:

鍊錶數值:123

45壓完的棧:543

21(先進後出)

將棧裡面的數值依次取出(利用push取出棧頂元素,push_back插入到陣列尾部),存入result陣列當中,返回該陣列

/**

* struct listnode

* };

*/class

solution

int len = arr.

size()

;int num;

for(

int i =

1; i <= len; i++

)return result;}}

;//占用記憶體:592k

資料結構實驗之鍊表二:逆序建立鍊錶【**】

#include 

#include

using

namespace std;

struct node

;int

main()

for(p = head-

>next; p != null; p = p-

>next)

else

}return0;

}

學校中的acm訓練題目和這種題目相差較大,在學校中基本沒有用過c++中的一些函式,比如上面的一些關於棧的用法。所以,學習的路還有很長。

關於vector的相關資料——vector詳解——vector操作

繼續學習吧,太菜了。

劍指Offer 從尾到頭列印鍊錶

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

劍指offer 從尾到頭列印鍊錶

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

劍指Offer 從尾到頭列印鍊錶

輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。個人認為如果本題就只是列印的話,最好不要反轉鍊錶 你什麼時候見過列印函式改變資料結構了的 我的思路 儲存順序值,然後反轉。注意 1 reverse vprint.begin vprint.end algorithm的使用!2 重新構造。以上兩種衡量選擇。另...