输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
牛客网提交代码:
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
vector<int> vec;
ListNode *temp = head;
while(temp != nullptr){
vec.push_back(temp->val);
temp = temp->next;
}
for(int i=0;i<vec.size()/2;i++)
{
int a = vec[i];
vec[i] = vec[vec.size()-1-i];
vec[vec.size()-1-i] = a;
}
return vec;
}
};
注意: 对于反转链表,我更建议用三个指针将链表真正反转,并将链表指针指向反转后的头结点。上面的代码只是用于打印而已。并没有真的去反转。