### 說明:無環鏈表。這道題也是歸并排序的中間步驟。
### 思路:這道題思路和[倒數第 k 個節點](http://www.hmoore.net/persuez/algorithm/861500)的思路是一致的,都是用距離是固定的,只不過這道題用一個特別一點的方式求:快指針每次走兩步到最后的或倒數第一個節點(節點數為偶數,都是從鏈頭出發),慢指針每次走一步到達的就是中間節點(偶數的話是左節點)。
以下是代碼實現:
```
SList* findMiddleNode(SList *pHead)
{
if (pHead == nullptr) {
return nullptr;
}
SList *slow = pHead, *fast = pHead;
while (fast != nullptr && fast->m_next != nullptr) {
fast = fast->m_next->m_next;
slow = slow->m_next;
}
return slow;
}
```