用栈保存节点
遍历链表,使用一个栈保存每一个节点,然后从尾结点开始依次出栈依次出栈。
class Solution { public: ListNode* ReverseList(ListNode* pHead) { if (pHead==0)return 0; stack<ListNode*>s; while(pHead) { s.push(pHead); pHead=pHead->next; } ListNode*head=s.top(),*h=head; s.pop(); while(!s.empty()) { head->next=s.top(); s.pop(); head=head->next; } head->next=0; return h; } };