Q22 LeetCode142 环形链表

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 }
复制代码

 

posted @   清川1  阅读(3)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示