题目描述
输入一个链表,反转链表后,输出链表的所有元素。
#include <iostream>
#include <vector>
using namespace std;
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
vector<ListNode*> vec;
ListNode *p=pHead;
while(pHead!=NULL){
vec.push_back(pHead);
pHead=pHead->next;
}
if(p!=NULL){
ListNode *h=vec.back();
vec.pop_back();
h->next=vec.back();
int s=vec.size();
for(int i=s-1;i>=1;i--){
vec[i]->next=vec[i-1];
}
if(s!=0)
vec[0]->next=NULL;
else
h->next=NULL;
return h;
}else
return NULL;
}
};