/*
输入一个链表,反转链表后,输出新链表的表头。
将数据压栈后重新放入,得到一个反转的链表,原来的表头仍为表头
*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
std::stack<int> st;
ListNode* p = pHead;
ListNode* q = pHead;
while (p)
{
st.push(p->val);
p = p->next;
}
while (q)
{
q->val = st.top();
st.pop();
q = q->next;
}
return pHead;
}
};