142. Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null.

Note: Do not modify the linked list.

Follow up:
Can you solve it without using extra space?

//之间做过 有推倒

public class Solution {

    public ListNode detectCycle(ListNode head) {

        ListNode slow = head;

        ListNode fast = head;

        

        while (fast!=null && fast.next!=null){

            fast = fast.next.next;

            slow = slow.next;

                    

            if (fast == slow){

                ListNode slow2 = head; 

                while (slow2 != slow){

                    slow = slow.next;

                    slow2 = slow2.next;

                }

                return slow;

            }

        }

        return null;

    }

}

posted @ 2019-04-09 16:14  MarkLeeBYR  阅读(90)  评论(0)    收藏  举报