题目描述
思路
1、链表逆置,再传入数组中
2、利用栈先进后出的特性建立数组
3、其他
代码
class Solution {
public:
vector<int> reversePrint(ListNode* head) {
//1、将链表逆置
ListNode* pre ,* curr;
pre = NULL;
curr = head;
while(curr){
ListNode* next = curr->next;
curr->next = pre;
pre = curr;
curr = next;
}
//2、将链表存入数组
vector<int> ret;
while(pre){
ret.push_back(pre->val);
pre = pre->next;
}
return ret;
}
};
运行结果(链表逆置)
时间复杂度与空间复杂度都是O(n)级别
PS
力扣和C++的风格感觉还要再属性,一些题思路挺明确但是想写好缺花了不少时间,想来我还是太菜了,C++的特性还没懂多少,vector下用一些数组、栈啊,求长度等不顺手,,,😔哎,还是要加快学习的脚步