142 Linked List Cycle II 环形链表 II
给一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
说明:不应修改给定的链表。
补充:
你是否可以不用额外空间解决此题?
详见:https://leetcode.com/problems/linked-list-cycle-ii/description/
Java实现:
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode detectCycle(ListNode head) { if(head==null){ return null; } ListNode slow=head; ListNode fast=head; while(fast!=null&&fast.next!=null){ slow=slow.next; fast=fast.next.next; if(slow==fast){ fast=head; while(slow!=fast){ slow=slow.next; fast=fast.next; } return slow; } } return null; } }