题目描述
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
大致思路
- 倒序过来,就先存到栈中,然后再一个个存到链表中去就行了
代码
vector<int> printListFromTailToHead(ListNode* head) {
vector<int> arry;
stack<int> int_stack;
ListNode* temp_ptr = head;
while (temp_ptr != NULL){
int_stack.push(temp_ptr->val);
temp_ptr = temp_ptr->next;
}
while(!int_stack.empty()){
arry.push_back(int_stack.top());
int_stack.pop();
}
return arry;
}
结论
思路很简单,也没做过多的思考其它的方案,如果说原本的数据不是 int,而是一个很大的数据结构的话,那么思路一样,此外可能会考虑直接先遍历把各个节点的地址存起来,然后再进行同样的处理。