剑指offer:面试4从尾到头打印链表

来源:互联网 发布:阿里巴巴农村淘宝加盟 编辑:程序博客网 时间:2024/06/06 12:42

通常打印是一个只读操作,我们不希望打印时修改内容,假设这个题目不能改变链表的结构。
利用栈的先进后出特点,遍历链表进栈,然后利用vector.push_back()从尾部插入节点,将栈顶的值依次插入到vector尾。最后返回vector就可以得到从尾到头的链表。
例如输入:1 2 3 4 5
输出:5 4 3 2 1

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