【剑指offer】06从尾到头打印链表,C++实现

本文是原创文章,转载请注明出处!

0.前言

# 本文为牛客网《剑指offer》刷题笔记

1.题目

# 输入一个链表,从尾到头打印链表每个节点的值

2.思路

# 不改变链表结构的情况下,首先,遍历链表将链表结点值存入栈中;然后,从栈顶逐个输出结点的值到向量。

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
原文地址:https://www.cnblogs.com/wanglei5205/p/8502753.html