【劍指offer】06從尾到頭打印鏈表,C++實現

本文是原創文章,轉載請註明出處!ide

0.前言

# 本文爲牛客網《劍指offer》刷題筆記spa

1.題目

# 輸入一個鏈表,從尾到頭打印鏈表每一個節點的值code

2.思路

# 不改變鏈表結構的狀況下,首先,遍歷鏈表將鏈表結點值存入棧中;而後,從棧頂逐個輸出結點的值到向量。blog

3.code

 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 };
View Code
相關文章
相關標籤/搜索