题目描述
输入一个链表的头结点,按照 从尾到头 的顺序返回节点的值。
返回的结果用数组存储。
样例
输入:[2, 3, 5]
返回:[5, 3, 2]
算法1
递归
将除去当前节点的剩余部分打印出来,然后将当前节点添加到末尾
C++ 代码
class Solution {
public:
vector<int> printListReversingly(ListNode* head) {
if(!head) return vector<int>();
auto t = printListReversingly(head->next);
t.push_back(head->val);
return t;
}
};
算法2
遍历
遍历一遍,将结果存储到数组内,然后将数组逆序输出
C++ 代码
class Solution {
public:
vector<int> printListReversingly(ListNode* head) {
vector<int> ans;
while(head) {
ans.push_back(head->val);
head = head->next;
}
return vector<int>(ans.rbegin(),ans.rend());
}
};