劍指 6 從尾到頭列印鍊錶

2021-08-13 21:51:47 字數 910 閱讀 7615

題目描述

輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。
題目很經典,因此本文用三種方法來處理。(嚴格來說算2種)

思路1先順序輸出鍊錶資料,然後翻轉輸出的結果。

/**

* struct listnode

* };

*/class solution ;

vector

ret;

listnode* pread = head;

while(pread != null)

std::reverse(ret.begin(), ret.end());

return ret;

}};

從頭到位遍歷一遍資料,因此時間複雜度:o(n)

空間複雜度:o(n)

思路2 棧 非遞迴

/**

* struct listnode

* };

*/class solution ;

std::stack

sk;listnode* pread = head;

while (pread != null)

vector

ret;

while (!sk.empty())

return ret;

}};

思路3 棧 遞迴
class solution ;

vector

ret;

listnode* pread = head;

help(ret, pread);

return ret;

}void help(vector

& ret, listnode* node)

};

劍指 6 從尾到頭列印鍊錶

題目描述 演算法分析 借助堆疊的 後進先出 實現 使用反向迭代器 抖機靈,未貼出 提交 class solution while stackresult.empty return result 測試 include include include include listnode.h using n...

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

題 輸入乙個鍊錶的頭節點,從尾到頭列印鍊錶每個節點的值 鍊錶的基本知識,節點的2個屬性 value next 棧的基本使用 建立空棧 pop empty push等 參考 遞迴的本質 棧結構,將複雜的問題分成小問題去解決 參考 靜態static 參考 靜態方法只能訪問靜態成員 非靜態即可訪問靜態也可...

劍指Offer 從尾到頭列印鍊錶

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