输入一个链表,反转链表后,输出新链表的表头。

/*
输入一个链表,反转链表后,输出新链表的表头。

将数据压栈后重新放入,得到一个反转的链表,原来的表头仍为表头
*/
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        std::stack 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;
    }
};

你可能感兴趣的:(输入一个链表,反转链表后,输出新链表的表头。)