题目:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
思路:利用栈,先把链表的元素从头到尾依次入栈,然后依次出栈输出
代码:
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
vector<int >v;
stack<ListNode*>s;
if(head==NULL) return v;
ListNode* p =head;
while(p!=NULL)
{
s.push(p);
p=p->next;
}
while(!s.empty())
{
p=s.top();
s.pop();
v.push_back(p->val);
}
return v;
}
};