传送门
nowcoder
leetcode
题目描述
输入一个链表,按链表从尾到头的顺序返回每个节点的值(用数组返回)
C++ 代码 - nowcoder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
vector<int> printListFromTailToHead(ListNode* head) { if (head == nullptr) return vector<int>(); vector<int> result; while (head != nullptr) { result.push_back(head->val); head = head->next; } reverse(result.begin(), result.end()); return result; }
vector<int> printListFromTailToHead(ListNode* head) { vector<int> res; if (head == nullptr) return res;
stack<int> s; while (head) { s.push(head->val); head = head->next; } while (!s.empty()) { res.push_back(s.top()); s.pop(); } return res; }
vector<int> printListFromTailToHead(ListNode* head) { if (head == nullptr) return vector<int>(); vector<int> res = printListFromTailToHead(head->next); res.push_back(head->val); return res; }
vector<int> printListFromTailToHead(ListNode* head) { ListNode *pre = nullptr; ListNode *next = head; ListNode *cur = head; while (cur) { next = cur->next; cur->next = pre; pre = cur; cur = next; } vector<int> res; while (pre) { res.push_back(pre->val); pre = pre->next; } return res; }
|
C++ 代码 - leetcode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
class Solution { public: vector<int> reversePrint(ListNode* head) { ListNode *pre = nullptr, *next = head, *cur = head; while (cur) { next = cur->next; cur->next = pre; pre = cur; cur = next; } vector<int> res; while (pre) { res.push_back(pre->val); pre = pre->next; } return res; } };
|