# 141.环形链表

## 问题描述
[141.环形链表](https://leetcode.cn/problems/linked-list-cycle/)

## 解题思路
使用快慢两个指针，`fast`一次移动两个节点，`slow`一次移动一个节点，如果链表存在环，那么`fast`和`slow`一定会有相等的时候，否则`fast`会运动到链表末尾。

## 代码
```cpp
class Solution {
  public:
    bool hasCycle(ListNode *head) {
        ListNode *vhead = new ListNode(0, head);
        ListNode *fast = vhead, *slow = vhead;
        while (fast != nullptr && fast->next != nullptr) {
            fast = fast->next->next;
            slow = slow->next;
            if (fast == slow)
                return true;
        }
        return false;
    }
};
```


