题目:
输入一个链表,从尾到头打印链表每个节点的值。
做法一:最初的思路:将链表元素压入栈,在弹出到队列
vector<int> printListFromTailToHead(ListNode* head) { vector<int> vec; stack<int> sta; ListNode* p = head; while(p != NULL) { sta.push(p->val); p = p->next; } int num = sta.size(); while(num--) { vec.push_back(sta.top()); sta.pop(); } return vec; }
做法二:递归(能不用就不用,主要掌握思想)
vector<int> vec; void func(ListNode* p) { if(p == NULL) return; func(p->next); vec.push_back(p->val); } vector<int> printListFromTailToHead(ListNode* head) { func(head); return vec; }