題目描述
輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。
題目很經典,因此本文用三種方法來處理。(嚴格來說算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的整數,代表乙個鍊錶的節點。第一行是鍊錶第乙個節點的...