首页 > 代码库 > Problem Linked List Cycle II
Problem Linked List Cycle II
Problem Description:
Given a linked list, return the node where the cycle begins. If there is no cycle, return null
.
Follow up:
Can you solve it without using extra space?
Solution:
1 public ListNode detectCycle(ListNode head) { 2 if (head == null) return null; 3 if (head.next == null || head.next.next == null) return null; 4 ListNode tortoise = head.next; 5 ListNode hare = head.next.next; 6 while (tortoise != hare) { 7 if (tortoise.next == null) return null; 8 tortoise = tortoise.next; 9 if (hare.next == null || hare.next.next == null) return null;10 hare = hare.next.next;11 }12 13 tortoise = head;14 while(tortoise != hare) {15 tortoise = tortoise.next;16 hare = hare.next;17 }18 19 return tortoise;20 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。