题解 | #判断链表中是否有环#
判断链表中是否有环
https://www.nowcoder.com/practice/650474f313294468a4ded3ce0f7898b9
/** * 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) { // 设置快指针和慢指针 ListNode fastNode = head; ListNode lowNode = head; // 同时运行直到结束 while(fastNode != null && lowNode != null){ // 同时运行 fastNode = fastNode.next; if(fastNode == null){ return false; }else{ fastNode = fastNode.next; } lowNode = lowNode.next; // 判断是否相遇 if(fastNode == lowNode){ return true; } } // 未相遇 return false; } }