剑指offer 从尾到头打印列表 包含vector 一些操作

实战 Java 并发编程
实战为导向,从Java 并发原理出发,并集合开发实践,全面剖析 Java 并发编程。
wangxiaoming


剑指offer 从尾到头打印列表 包含vector 一些操作


题目描述

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


原理简单,先把链表存到栈中,然后再出栈。


看代码:

#include<iostream>
#include<stack>
#include<vector>
using namespace std;

struct ListNode {
        int val;
        struct ListNode *next;
        ListNode(int x) :
             val(x), next(NULL) {
        }
  };
class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {

        stack<ListNode*> s;

        ListNode *pNode = head;
        while(pNode != NULL){
            s.push(pNode);
            pNode = pNode->next;
        }

        vector<int> v;
        while(!s.empty()){
            v.push_back(s.top()->val); // 放入vector
            s.pop();
        }
        return v;
    }
};
int main(){
    ListNode* a = new ListNode(1);
    ListNode* b = new ListNode(2);
    ListNode* c = new ListNode(3);
    a->next = b;
    b->next = c;
    c->next = NULL;
    Solution s;
    vector<int> v = s.printListFromTailToHead(a);
    for(int i = 0; i < v.size(); i++){
        cout<<v[i]<<" ";  //打印 vector
    }

   return 0;
}


wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
©️2020 CSDN 皮肤主题: Age of Ai 设计师: meimeiellie 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值