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

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

        head1=head1->next;

    }while(head1!=head2);
    return true;
}