diff --git a/problems/0142.环形链表II.md b/problems/0142.环形链表II.md index cd6347ef..7556b854 100644 --- a/problems/0142.环形链表II.md +++ b/problems/0142.环形链表II.md @@ -189,33 +189,28 @@ Java: ```java public class Solution { public ListNode detectCycle(ListNode head) { - // 1.寻找相遇点 - ListNode fast = head; ListNode slow = head; - + ListNode fast = head; while (fast != null && fast.next != null) { - fast = fast.next.next; slow = slow.next; - if (fast != slow) { - continue; + fast = fast.next.next; + if (slow == fast) {// 有环 + ListNode index1 = fast; + ListNode index2 = head; + // 两个指针,从头结点和相遇结点,各走一步,直到相遇,相遇点即为环入口 + while (index1 != index2) { + index1 = index1.next; + index2 = index2.next; + } + return index1; } - ListNode meet = fast; - - // 2.寻找入口点 - slow = head; - while (slow != fast) { - slow = slow.next; - fast = fast.next; - } - - return fast; } - return null; } } ``` + Python: ```python