该文章只是用于记录考研复试刷题
题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
思路
常规思路是逆转链表再输出,但看的《剑指offer》上说一般只读操作不允许改变存储的结构,故需要用先进后出的栈进行存储(当然会有内存占用过多的问题)
代码
class Solution {
public:
vector<int> reversePrint(ListNode* head) {
stack<int>nod;
while(head){
nod.push(head->val);
head=head->next;
}
vector<int>res;
while(!nod.empty()){
res.push_back(nod.top());
nod.pop();
}
return res;
}
};