##剑指offer之从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制:
0 <= 链表长度 <= 10000
来源:力扣(LeetCode)
class Solution {
public:
vector<int> reversePrint(ListNode* head) {
stack<int> str;
vector<int> strl;
struct ListNode *thead;
for(thead=head;thead!=NULL;thead=thead->next){
str.push(thead->val);
}
while(!str.empty()){
strl.push_back(str.top());
str.pop();
}
return strl;
}
};
解题思想:从尾到头打印链表,首先想到就是利用栈,遍历链表中的元素,将其压入栈中,再将其弹出存入数组。
注意:将元素弹出栈时一定要先检查栈是否为空。
补充:stack 栈堆容器类改编,为程序员提供栈的功能,
top() //返回栈顶元素
push()//将元素压入栈
pop() //将栈顶元素弹出
empty()//判断栈是否为空,是则返回1
size() //返回栈中元素数目