输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
分析1:从尾到头,想到堆栈。
class Solution {
vector <int> result;
public:
vector<int> printListFromTailToHead(ListNode* head) {
//堆栈
stack<int> s1;
ListNode* p=head;
while(p!=NULL)
{
s1.push(p->val);//依次把链表节点的值插入到堆栈中
p=p->next;
}
int len=s1.size();
for(int i=0;i<len;i++)
{
result.push_back(s1.top()); //返回到arrayList
s1.pop();
}
}
};分析2:利用递归
vector<int> value;//最好定义在外面
ListNode *p=NULL;
p=head;
if(p!=NULL){
if(p->next!=NULL){
printListFromTailToHead(p->next);
}
value.push_back(p->val);
}
return value;*/
京公网安备 11010502036488号