#include <stdbool.h>
/**
 * struct ListNode {
 *    int val;
 *    struct ListNode *next;
 * };
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */

/**
 * 
 * @param head ListNode类 
 * @return bool布尔型
 */
bool hasCycle(struct ListNode* head ) {
    if(!head)
        return false;   
    struct ListNode* p1=head,*p2=head;
    while(p2 && p2->next){
        p1=p1->next;
        p2=p2->next->next;
        if(p1==p2)
            return true;
    }
    return false;
    
}