ListNode* ReverseList(ListNode* pHead) {
    ListNode* cur = pHead;
    ListNode* pre = nullptr;

    //思路: 将当前节点cur的next由原来的next赋值为pre
    // pre = cur
    // cur = next (我们需要事先保存next)
    // 循环结束的条件为cur节点为nullptr的时候
    while(cur != nullptr) {
        ListNode* next = cur->next; //保存原有的下一个

        cur->next = pre; //反转

        pre = cur;
        cur = next;

    }
    return pre;
}