import cn.leekari.base.ListNode; /** * @author leekari * @date 2020/10/15 09:45 * @description */ /** * 判断是否循环链表 */ public class ListNodeHasCycle { /** * 快慢指针相遇即为循环链表 * @param head * @return */ public static boolean hasCycle(ListNode head) { ListNode slow = head; ListNode fast = head; while(fast != null && fast.next != null ){ slow = slow.next; fast = fast.next.next; if (slow == fast){ return true; } } return false; } public static void main(String[] args) { ListNode listNode = new ListNode(1); listNode.next = new ListNode(2); listNode.next.next = new ListNode(3); listNode.next.next.next = listNode; System.err.println(hasCycle(listNode)); } }