141
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycle(ListNode *head) { if(head == NULL) return false; ListNode *a = head; ListNode *b = head; while(b -> next != NULL && b -> next -> next != NULL){ a = a -> next; b = b -> next -> next; if(a == b) return true; } return false; }};142
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *detectCycle(ListNode *head) { if(head == NULL) return NULL; ListNode *a = head; ListNode *b = head; while(b -> next != NULL && b -> next -> next != NULL){ a = a -> next; b = b -> next -> next; if(a == b){ a = head; while(a != b){ a = a -> next; b = b -> next; } return a; } } return NULL; }};新闻热点
疑难解答