【剑指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 };