JZ6 从尾到头打印链表
描述
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
如输入{1,2,3}的链表如下图:
返回一个数组为[3,2,1]
0 <= 链表长度 <= 10000
示例1
输入:{1,2,3}
返回值:[3,2,1]
示例2
输入:{67,0,24,58}
返回值:[58,24,0,67]
思路
直接遍历:从链表的头结点开始遍历,记录数据,最后反转整个数组,返回即可。
1.引入库
代码如下:
struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
2.核心代码
代码如下:
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
vector<int> ans;
while(head){
ans.push_back(head->val);
head = head->next;
}
reverse(ans.begin(),ans.end());
return ans;
}
};