本文是原創文章,轉載請註明出處!ide
# 本文爲牛客網《劍指offer》刷題筆記spa
# 輸入一個鏈表,從尾到頭打印鏈表每一個節點的值code
# 不改變鏈表結構的狀況下,首先,遍歷鏈表將鏈表結點值存入棧中;而後,從棧頂逐個輸出結點的值到向量。blog
1 /** 2 * struct ListNode { 3 * int val; 4 * struct ListNode *next; 5 * ListNode(int x) : 6 * val(x), next(NULL) { 7 * } 8 * }; 9 */ 10 class Solution { 11 public: 12 vector<int> printListFromTailToHead(ListNode* head) { 13 14 ListNode *p = head; // 遍歷鏈表 15 stack<int> stk; // stack用於存儲結點的值 16 vector<int> vec; // vector用於存儲出棧的值 17 18 // 遍歷鏈表 19 while(p!=NULL){ 20 stk.push(p->val); // 壓棧 21 p = p->next; // 下一個結點 22 } 23 24 // 遍歷棧 25 while(!stk.empty()){ 26 vec.push_back(stk.top()); // 出棧後存儲向量 27 stk.pop(); // 刪除棧頂元素 28 } 29 return vec; 30 31 } 32 };