題目描述
輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。
演算法描述(非遞迴)
1.從頭到尾遍歷鍊錶,將每個結點存入棧中
2.遍歷輸出棧(由於劍指offer給的返回值為vector
,所以遍歷棧的時候將元素在存入vector中)
**
vector
printlistfromtailtohead(listnode* head)
while(!s.empty())
return v;
}
演算法描述(遞迴)
1.採用遞迴的方式,首先遞迴到尾結點,然後將結點值存入vector
2.利用遞迴退層回到上乙個結點,再存入vector
3.注意vector要傳引用,否則不同的函式棧幀中沒有同乙個vector
**
void printlistfromtailtohead(listnode* head,vector
& v)
vector
printlistfromtailtohead(listnode* head)
劍指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 重新構造。以上兩種衡量選擇。另...