/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:int self_distance(ListNode *self){int distance = 1;ListNode *temp = self->next;while(temp != self){distance++;temp = temp->next;}if(temp == self){return distance;}return -1; // No loop}bool hasCycle(ListNode *head) { // O(1) 内存ListNode *temp = head;while(temp){if(self_distance(temp) != -1){return true;}temp = temp->next;}return false;}};
思路是把每一个节点检验一下有没有首尾都是自己的环,但是time exceed,不确定有bug还是算法太差
思路是把每一个节点检验一下有没有首尾都是自己的环,但是time exceed,不确定有bug还是算法太差