链表逆序打印
方法一用vector,时间复杂度空间复杂度都是O(N),比较简单,忽略。
方法二,使用递归,空间复杂度和时间复杂度也是O(N)。
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : * val(x), next(NULL) { * } * }; */ class Solution { public: void printListFromTailToHead(ListNode* head, vector<int> &vec) { if(head == NULL) return; printListFromTailToHead(head->next, vec); vec.push_back(head->val); } vector<int> printListFromTailToHead(ListNode* head) { vector<int> &vec; printListFromTailToHead(head, vec); return vec; } };