依次访问链表节点,若链表有环,则陷入无限访问循环,而链表长度最大10000,因此当访问超过10000次,则说明有环。
#include <stdbool.h> #include <string.h> /** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * * @param head ListNode类 * @return bool布尔型 */ bool hasCycle(struct ListNode* head ) { // write code here int flag[10005]; memset(flag, 0, sizeof(flag)); int i = 0; flag[i] = 1; while (head) { if(i > 10000) return true; i++; head = head->next; } return false; }