### 说明:无环链表。这道题也是归并排序的中间步骤。
### 思路:这道题思路和[倒数第 k 个节点](https://www.kancloud.cn/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;
}
```