题目
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
解法
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
vector<int> reversePrint(ListNode* head) {
// 获取链表的长度
ListNode* p = head;
int len = 0;
while(p!=NULL){
len++;
p = p->next;
}
// 利用.insert()的特点逆置
vector<int> nums;
p = head;
for(int i=0; i<len; i++){
nums.insert(nums.begin(),p->val) ;
p = p->next;
}
return nums;
}
};
总结
利用insert()
的特点实现前插。