链表从尾到头返回数组
从尾到头打印链表
https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tqId=11156&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
输入一个链表,按链表从尾到头的顺序返回一个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;*/