#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* qukly = head;
    struct ListNode* slow = head;
    while(qukly&&qukly->next){      // 之所以两个,是考虑节点个数是奇数还是偶数
        qukly = qukly->next->next;  // 每一次走两步
        slow = slow->next;          // 每一次走一步
        if(qukly==slow){
            return true;            // 快指针追上慢指针
        }
    }
    return false;                   // 没有环,快指针提前结束
}