LeetCode 寻找循环链表

1 class Solution { 2 public: 3 bool hasCycle(ListNode *head) { 4 ListNode *f = head; 5 ListNode *s = head; 6 if(s==NULL ||s->next == NULL ){ 7 return false; 8 } 9 while( s->next != NULL || f->next->next != NULL){ 10 if(f->next->next == s->next){ 11 return true; 12 break; 13 } 14 f = f->next->next; 15 s = s->next; 16 } 17 return false; 18 } 19 };
这里需要注意一点
在判断条件if()时,需要先判断最先可能出现的情况,然后再判断在这之后才可能出现的情况,不然程序会报错
if(s->next == NULL || s == NULL ){ 7 return false; 8 } //如果输入为 [] ,这里就会报错了

浙公网安备 33010602011771号