vector实现反转:
reverse(vector.begin(), vector.end());
输入一个链表,从尾到头打印链表每个节点的值:
#include <iostream>
#include <vector>
using namespace std;
struct ListNode
{
int val;
struct ListNode* next;
ListNode(int x)
: val(x), next(NULL)
{
}
};
class Solution
{
public:
vector<int> printListFromTailToHead(ListNode* head)
{
ListNode* p = head;
vector<int> tmp;
while(head!=NULL)
{
tmp.push_back(head->val); //每次都插到尾部
head = head->next;
}
reverse(tmp.begin(), tmp.end()); //一句话实现vector反转
return tmp;
}
};
int main()
{
return 0;
}
当然本题也可以法二:
class Solution
{
public:
vector<int> printListFromTailToHead(ListNode* head)
{
ListNode* p = head;
vector<int> tmp;
while(head!=NULL)
{
tmp.insert(tmp.begin(), head->val); //每次插到vector头部,这样不用反转
head = head->next;
}
return tmp;
}
};