/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ #include <vector> class Solution { public: vector<int> printListFromTailToHead(ListNode* head) { if (head == nullptr) return {}; std::vector<int> ans; auto prefix = printListFromTailToHead(head->next); ans.insert(ans.end(), prefix.begin(), prefix.end()); ans.push_back(head->val); return ans; } };