题目描述
输入一个链表,按链表值从尾到头的顺序返回一个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;
}
};
本文介绍了一种使用C++实现的算法,该算法接收一个链表作为输入,并以逆序方式输出链表的所有元素到一个整数类型的ArrayList中。通过在ArrayList头部持续插入元素的方式达到逆序输出的效果。
537

被折叠的 条评论
为什么被折叠?



