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

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