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

2021-09-12 16:53:34 字數 700 閱讀 2025

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

1、將鍊錶反轉,會改變鍊錶的結構,一般不採用

2、使用棧,從頭到尾讀取資料並存入棧中,輸出棧中的全部內容

3、使用遞迴實現,遞迴在本質上就是乙個棧結構,每次列印當前值時,先列印後乙個值,使用遞迴**更簡潔。但是鍊錶過長將導致遞迴呼叫過深,導致函式呼叫棧溢位,使用第二種方式顯然魯棒性更好。

兩種方案:

/**

* struct listnode

* };

*/class

solution

// 修正順序

int len = ans.

size()

;for

(int i =

0; i < len/

2; i++

)return ans;}}

;class

solution

void

getvalue

(listnode* head, vector<

int>

& ans)

getvalue

(head-

>next, ans)

; ans.

push_back

(head-

>val);}

};

劍指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 重新構造。以上兩種衡量選擇。另...