链表oj(10)---->链表开始入环的第一个节点

Posted ohana!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表oj(10)---->链表开始入环的第一个节点相关的知识,希望对你有一定的参考价值。

题目内容:

解题代码:

public class Solution {
    public ListNode detectCycle(ListNode head) {
        ListNode fast = head;
        ListNode slow = head;

        while(fast != null && fast.next != null){
            fast = fast.next.next;
            slow = slow.next;
            if(slow == fast){
                break;
            }
        }

        if(fast == null || fast.next == null){
            return null;
        }

        ListNode cur = head;
        while(cur != slow){
            cur = cur.next;
            slow = slow.next;
        }
        return cur;
    }
}

 解题思路:

和oj(9)比较像,先判断是否有环,之后的关键在于(给一个引用从链表头结点开始,让slow一起遍历,相遇的结点就是入环的第一个结点)

以上是关于链表oj(10)---->链表开始入环的第一个节点的主要内容,如果未能解决你的问题,请参考以下文章