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         }
//如果输入为 []  ,这里就会报错了

 

posted @ 2019-03-01 10:10  Howardwang  阅读(94)  评论(0)    收藏  举报