3. 从尾到头打印链表
题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
分析
(这里我一开始以为是返回一个链表…没想到是返回一个ArrayList…)
看给定的代码,这里的返回值是一个int类型的vector
- c++的vector可以用
insert()
函数来向指定位置插入元素,arr.begin()
表示在头部,arr.end()
表示在尾部。例如:
//在头部插入10
arr.insert(arr.begin(),10);
//在尾部插入8
arr.insert(arr.end(),8);
答案
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
vector<int> arr;
while(head){
arr.insert(arr.begin(),head->val);
head = head->next;
}
return arr;
}
};