【剑指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
相关文章
相关标签/搜索