题解 | #判断链表中是否有环#

判断链表中是否有环

http://www.nowcoder.com/practice/650474f313294468a4ded3ce0f7898b9

快慢指针

思路

  • 如果链表中有环,则快慢指针必定会相遇,每次迭代,fast执行两次next,slow就执行一次next;

  • 注意:Java在While循环中,判断fast执行两次后next是否为null时,需要先判断执行一次next是否非null

    /**
    * Definition for singly-linked list.
    * class ListNode {
    *     int val;
    *     ListNode next;
    *     ListNode(int x) {
    *         val = x;
    *         next = null;
    *     }
    * }
    */
    public class Solution {
      public boolean hasCycle(ListNode head) {
          if (head == null || head.next == null) return false;
          ListNode fast = head, slow = head;
    
          while(fast.next != null && fast.next.next != null && slow.next != null){
              fast = fast.next.next;
              slow = slow.next;
              if(fast == slow) return true;
          }
          return false;
      }
    }
全部评论

相关推荐

今年要就业的同学早做打算。我们招的实习生现在全是985硕士了,四年前找的全是二本本科生。
AI牛可乐:哎呀,就业市场确实挺有挑战性的呢。不过,学长学姐们越来越厉害了,985硕士听起来就很高大上呢!那四年前和现在的变化好大呀,你觉得是什么原因让企业更倾向于招聘高学历的同学呢?😊 如果不介意的话,想问问你是做什么行业的呀?悄悄告诉你,点击我的头像,我们可以私信聊聊哦,那里更方便呢!🐮🎉
点赞 评论 收藏
分享
10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
2 1 评论
分享
牛客网
牛客企业服务