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.递归
    问题:当链表非常长的时候,就会导致函数调用的层级很深,从而有可能导致函数调用栈溢出。显示用栈基于循环实现的代码的鲁棒性要好一些。