题目:从尾到头打印链表
要求;输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
1 /** 2 * struct ListNode { 3 * int val; 4 * struct ListNode *next; 5 * ListNode(int x) : 6 * val(x), next(NULL) { 7 * } 8 * }; 9 */ 10 class Solution { 11 public: 12 vector<int> printListFromTailToHead(ListNode* head) { 13 14 } 15 };
解题代码:
1 /** 2 * struct ListNode { 3 * int val; 4 * struct ListNode *next; 5 * ListNode(int x) : 6 * val(x), next(NULL) { 7 * } 8 * }; 9 */ 10 class Solution { 11 public: 12 vector<int> printListFromTailToHead(ListNode* head) { 13 vector<int> res; 14 if(head == nullptr) 15 return res; 16 stack<int> temp; 17 ListNode* p = head; 18 while(p != nullptr){ 19 temp.push(p->val); 20 p = p->next; 21 } 22 23 while(!temp.empty()){ 24 res.push_back(temp.top()); 25 temp.pop(); 26 } 27 return res; 28 } 29 };