### 说明:无环链表。这道题个人感觉只要思路清晰就可以做出来,重点是定义 3 个指针,保存的内容为:前一个节点,当前要将m_next指向前一个节点的节点,后一个节点。不断向前遍历。注意点是第一个节点的 m_next 要指向空指针,头指针要指向最后的那个节点。 ``` SList* reverseList(SList *pHead) { SList *pReverseHead = nullptr; // 保存反转后的头节点 // 定义 3 个指针 SList *pPrev = nullptr, *pCur = pHead, *pNext = nullptr; while (pCur != nullptr) { // 保存下个节点到pNext中 pNext = pCur->m_next; // 保存反转后的头节点 if (pNext == nullptr) { pReverseHead = pCur; } // 设置当前节点的m_next pCur->m_next = pPrev; // 向前走 pPrev = pCur; pCur = pNext; } // 返回链表头 return pReverseHead; } ```