版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42449444/article/details/90030056
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
利用栈“先进后出”的性质来实现。先把链表的值按照顺序推入栈中,然后再把栈中的元素一一取出来放入一个vector中,最后返回vector即可。
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
stack<int> s; //利用栈“先进后出”的性质
while(head != NULL)
{
s.push(head->val);
head = head->next;
}
vector<int> ans;
while(!s.empty())
{
ans.push_back(s.top());
s.pop();
}
return ans;
}
};