链表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)---->链表开始入环的第一个节点的主要内容,如果未能解决你的问题,请参考以下文章

剑指 Offer II 022. 链表中环的入口节点

LeetCode Java刷题笔记—142. 环形链表 II

每天一道算法题(java数据结构与算法)——>链表中环的入口节点

142#环形链表2

链表相关面试题:返回两个链表的第一个交点,判断单链表是否有环,返回入环的第一个结点

Leetcode 142.环形链表II