从尾到头打印单链表
1 题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
输入:head = [1,3,2]
输出:[2,3,1]
限制 <= 链表长度 <= 10000
2 解题思路
利用栈结构实现。先将链表元素从头入栈,再将栈元素依次出栈,并按照出栈顺序依次赋值给数组。
本题利用栈的先进后出的思想,从而实现链表数据反向打印。
思路对应图片
3 代码
vector<int> reversePrint(ListNode* head) {
//利用栈结构设计
stack<int> s;
vector<int> vec;
//将链表元素进栈
while(head)
{
s.push(head->val);
head=head->next;
}
//将栈中元素出栈,入数组。
while(!s.empty())
{
vec.emplace_back(s.top());
s.pop();
}
return vec;
}