题目分析:[[EVD]] - 剑指 Offer 06.从尾到头打印链表https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/
简单描述:
-
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
限制🚫
- 0 <= 链表长度 <= 10000
示例:
输入:head = [1,3,2]
输出:[2,3,1]
解题思路:
思路:
- #栈 #递归 先进后出,符合栈的性质
- 栈A可以不用
- 数组A预分配空间,从尾到头赋值
- 直接用reverse()函数对数组A反序 #[[C++ STL]]
- 栈A可以不用
效率:
- 时间复杂度
- 空间复杂度
代码:
class Solution
{
public:
vector<int> reversePrint(ListNode *head)
{
vector<int> s;
while (head != NULL)
{
s.push_back(head->val);
head = head->next;
}
reverse(s.begin(), s.end());
return s;
}
};