剑指offer-3.从尾到头打印链表

来源:互联网 发布:淘宝店铺免费采集软件 编辑:程序博客网 时间:2024/05/21 14:58

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


思路:定义一个栈作为中介,栈就是用来反转节点的,因为栈的特点是先进后出,先进的节点会留在栈底,后进的节点会留在栈顶;最后进行出栈,得到的就是反转的节点,把节点值保存在容器中;


/***  struct ListNode {*        int val;*        struct ListNode *next;*        ListNode(int x) :*              val(x), next(NULL) {*        }*  };*/class Solution {public:    vector<int> printListFromTailToHead(ListNode* head)     {        stack<ListNode*>m;           //栈就是用来反转节点的,因为栈的特点是先进后出,先进的节点会留在栈底,后进的节点会留在栈顶        ListNode* temp = head;               vector<int>result;        while (temp != NULL)        {            m.push(temp);            temp = temp->next;        }        while (!m.empty())        {            temp = m.top();            result.push_back(temp->val);            m.pop();        }        return result;    }};


0 0