class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
stack<ListNode*> s;
ListNode* ret ;
ListNode* temp;
ret=temp;
if(pHead==NULL) return pHead;
while(pHead->next!=NULL)
{
s.push(pHead);
pHead=pHead->next;
}
temp=pHead;
while(!s.empty())
{
temp->next=s.top();
temp=temp->next;
s.pop();
}
temp->next=NULL;
return pHead;
}
};
这个方法最重要的是要记得将两个指针(temp,ret)指向同一个起点,后面无论对哪个进行跟踪都可以,只需要返回的时候是返回另外一个就行。