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 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步