题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
思路
先循环将链表中的值从头到尾存储到vector中,然后再翻转vector。
代码
c++实现:
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
vector<int> nums;
while(head!=NULL){
nums.push_back(head->val);
head=head->next;
}
int n=nums.size();
for(int i=0;i<n/2;i++){
int temp=nums[i];
nums[i]=nums[n-i-1];
nums[n-1-i]=temp;
}
return nums;
}
};