### 這道題是典型的用快慢指針解決的:慢指針每次走一步,快指針每次走兩步,如果它們能相遇(快指針趕上慢指針),則存在環,如果遇到了nullptr,則不存在環。
```
// 如果存在環,則返回相遇的點,否則返回nullptr
SList* meetingNode(SList *list)
{
// 邊界條件:鏈表為空
if (list == nullptr) {
return nullptr;
}
SList *slow = list;
if (slow == nullptr) {
return nullptr;
}
SList *fast = slow->m_next;
while (fast != nullptr && slow != nullptr) {
if (fast == slow) {
return fast;
}
slow = slow->m_next;
fast = fast->m_next;
if (fast != nullptr) {
fast = fast->m_next;
}
}
// 遇到nullptr
return false;
}
```