1.栈
时间:O(N)
空间:O(N)
vector<int> printListFromTailToHead(ListNode* head) {
vector<int> res;
stack<int> s;
while(head != NULL){
s.push(head->val);
head = head->next;
}
while(!s.empty()){
res.push_back(s.top());
s.pop();
}
return res;
}
2.递归
问题:当链表非常长的时候,就会导致函数调用的层级很深,从而有可能导致函数调用栈溢出。显示用栈基于循环实现的代码的鲁棒性要好一些。
