#include <stdbool.h>
/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */

/**
 * 
 * @param head ListNode类 
 * @return bool布尔型
 */
bool hasCycle(struct ListNode* head ) {
    // write code here
    struct ListNode *fast = head, *slow = head;
    while (fast != NULL && slow != NULL) {
        slow = slow->next;
        if (fast->next == NULL) {
            return false;
        }
        fast = fast->next->next;
        if (fast == slow && fast != NULL) return true;
    }
    return false;
}