说到反转条件反射就想到了栈,这样两遍遍历就可以了.第一次提取所有的值,第二次压回去
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode*lp= pHead;
stack <int> stk;
while(lp!=NULL)
{
stk.push(lp->val);
lp=lp->next;
}
lp=pHead;
while(!stk.empty()&&lp!=NULL)
{
lp->val=stk.top();
lp=lp->next;
stk.pop();
}
return pHead;
}
};