剑指offer:面试题5——从尾到头打印链表
题目:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList
思路是,从尾到头的时候,如果直接遍历需要循环遍历O(n!),每次都从头遍历,或者改变链表结构,编程双向链表,O(n),如果借助一个栈,则可以大大提高效率。
从头到尾遍历一次链表并将元素入栈,则出栈时候值自然是倒序了。
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* ListNode(int x) :
* val(x), next(NULL) {
* }
* };
*/
class Solution {
public:
vector<int> printListFromTailToHead(ListNode* head) {
vector