剑指offer(3)—从尾到头打印链表

来源:互联网 发布:head first php怎么样 编辑:程序博客网 时间:2024/06/09 20:11

从尾到头打印链表

题目描述

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

思路

利用栈的先进后出思想,先遍历链表,并把元素存入栈中,再逐个弹出栈中元素,结果即为从尾到头打印链表。

代码

/***  struct ListNode {*        int val;*        struct ListNode *next;*        ListNode(int x) :*              val(x), next(NULL) {*        }*  };*/class Solution {public:    vector<int> printListFromTailToHead(ListNode* head) {        vector<int> vec;        if(head == NULL)            return vec;        stack<ListNode *> stk;        ListNode* ptmp = head;        while(ptmp != NULL){            stk.push(ptmp);            ptmp = ptmp->next;        }        while(!stk.empty()){            ptmp = stk.top();            stk.pop();            vec.push_back(ptmp->val);        }        return vec;    }};