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

链表中环的入口结点

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

#step 1:使用BM6.判断链表中是否有环中的方法判断链表是否有环,并找到相遇的节点。
#step 2:慢指针继续在相遇节点,快指针回到链表头,两个指针同步逐个元素逐个元素开始遍历链表。
#step 3:再次相遇的地方就是环的入口。
class Solution:
    def EntryNodeOfLoop(self, pHead):
			#定义快慢指针
        fast = pHead
        slow = pHead
		查看是否有环
        while fast != None and  fast.next != None: 
            fast = fast.next.next
            slow = slow.next
            if fast == slow:
                # 两指针相遇
                fast = pHead
                # 让快指针指向头节点
                while fast != slow:
                    fast = fast.next
                    slow = slow.next
                    # 走a步(环之前步数)
                return fast
        return None

全部评论

相关推荐

10-20 15:26
门头沟学院 Java
桥头牛油火锅:这个比例不正常,简历的话项目经历放中间,项目功能分点可以再明确点,前面加“·”或者“1 2 3”,另外简历上的照片可以去外面摄影店拍一下,以后也会用到的,hr筛人也是多少会看的,毕竟世界是一个巨大的卡颜局嘛,还有有些hr由于消息太多可能没看到,后面可能会回来找你,要简历的还会多一点,我也是普2本,比例大致是600:90:15:3,当然我实力不太够,拿的offer比较少,慢慢来吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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