【题解】剑指Offer-06 从尾到头打印链表

从尾到头打印链表(剑指Offer-06)

题面

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

示例

1
2
>输入:head = [1,3,2]
输出:[2,3,1]

限制

1
0 <= 链表长度 <= 10000

思路

简单遍历链表,然后reverse一下就好。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
vector<int> reversePrint(ListNode* head) {
vector<int> v;
ListNode *p = head;

while(p != NULL){
v.push_back(p->val);
p = p->next;
}

reverse(v.begin(), v.end());
return v;
}
};