1. 题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
2. 解题思路
这里仅仅需要打印数值,而不是反转链表,这个还是有区别.如果单纯的反转打印链表的值的话,我们可以使用stack操作.
3. 部分代码
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
#include <stack>
#include <vector>
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
std::stack<ListNode*> nodes;
std::vector<int> result;
ListNode* pnode = head;
while (pnode != nullptr) {
nodes.push(pnode);
pnode = pnode -> next;
}
while (!nodes.empty()) {
result.push_back(nodes.top()->val);
nodes.pop();
}
return result;
}
};
今天听了google的宣讲会,发现还是需要多刷一点题的~