Q22 LeetCode142 環形連結串列

清川1發表於2024-06-09

1.使用快慢指標

2.快指標向後移動兩個位置,慢指標向後移動一個位置

3.若快慢指標能相等,則有環

4.將一個指標指向head,一個指標指向fast,挨個向後遍歷,相等即進環點

 1 public class Solution {
 2     public ListNode detectCycle(ListNode head) {
 3         ListNode quickIndex=head;
 4         ListNode slowIndex=head;
 5         while(quickIndex!=null&&quickIndex.next!=null ){
 6             quickIndex=quickIndex.next.next;
 7             slowIndex=slowIndex.next;
 8             if(slowIndex==quickIndex){
 9                 ListNode node1=quickIndex;
10                 ListNode node2=head;
11                 while(node1!=node2){
12                     node1=node1.next;
13                     node2=node2.next;
14                 }
15                 return node1;
16             }
17         }
18         return null;
19 
20     }
21 }

相關文章