题解 | #链表中环的入口结点#

链表中环的入口结点

https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4

public class Solution {

    public ListNode EntryNodeOfLoop(ListNode pHead) {
        //定义快慢指针,第一次相遇的时候走的差距就是环的大小,然后将f指针移到头节点再次进行遍历再次相遇的位置就是入口节点
    
        if(pHead==null){
            return null;
        }
        ListNode s = hasCycle(pHead);
        ListNode f = pHead;
        if(s==null){
            return null;//无环
        }
        while(f!=s){
            f = f.next;
            s = s.next;
        }
        return s;   
    }

    public ListNode hasCycle(ListNode head){
        ListNode f = head;
        ListNode s = head;

        while(f!=null && f.next!=null){
            f = f.next.next;
            s = s.next;
            if(s==f){
                return s;
            }
        }
        return null;
    }
}

全部评论

相关推荐

哞客37422655...:这就是真实社会,没有花里胡哨的安慰,让你感受到阶级分明,不浪费彼此时间。虽然露骨但是唉
点赞 评论 收藏
分享
2025-12-28 22:19
门头沟学院 Java
不敢追165女神:简历写得毫无特点,你说你要是大二或者大三找寒假实习到暑期实习这段时间,你的简历还能约到面试。但是你是研究生哥,面试官不会因为你是研究生而降低要求,反而会觉得你是研究生才学了这么一点?为什么我不找个同阶段的本科生?
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务