题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
提交链接:点击
思路:两种方法。一种是利用非递归,一种是利用递归。非递归是将元素每次头插法入vector。递归是每次在vector尾部插入元素。
代码:
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { //递归 vector<int> list; if(head != NULL){ list=printListFromTailToHead(head->next); list.push_back(head->val); } return list; /* //非递归 vector<int> list; while(head != NULL){ list.insert(list.begin(),head->val); head=head->next; } return list; */ } };