/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public bool HasCycle(ListNode head) { //if (head == null) //{ // return false; //} //else //{ // var temp = head; // while (head.next != null) // { // var cur = head.next; // if (temp == cur) // { // return true; // } // else // { // head = head.next; // } // } // return false; //} if (head == null) return false; ListNode walker = head; ListNode runner = head; while (runner.next != null && runner.next.next != null) { walker = walker.next; runner = runner.next.next; if (walker == runner) return true; } return false; } }
https://leetcode.com/problems/linked-list-cycle/#/description
补充一个python的版本:
1 class Solution: 2 def hasCycle(self, head: ListNode) -> bool: 3 if head == None: 4 return False 5 slow,fast = head,head 6 while fast != None and fast.next != None: 7 slow = slow.next 8 fast = fast.next.next 9 if slow == fast: 10 return True 11 return False