题目描述
输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
思路:
1.利用数据结构中的栈的先进后出的特点完成反转的操作。
2.通过递归进行翻转。
代码1:
class Solution{
public:
vector printListFromTailToHead(ListNode* head)
{
vector result;
ListNode *p = NULL;
p = head;
stack MyStack;
while(p != NULL){
MyStack.push(p->val);
p = p -> next;
}
while(!MyStack.empty()){
result.push_back(MyStack.top());
MyStack.pop();
}
return result;
}
};
代码2:
class Solution {
public:
vector value;
vector printListFromTailToHead(ListNode* head) {
ListNode *p=NULL;
p=head;
if(p!=NULL){
if(p->next!=NULL){
printListFromTailToHead(p->next);
}
value.push_back(p->val);
}
return value;
}
};