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

链表中环的入口结点

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

package main
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

func EntryNodeOfLoop(pHead *ListNode) *ListNode{
    meetNode := GetMeetNode(pHead)
    if meetNode == nil {
        return nil 
    }

    first := pHead
    for i:=0 ;;i++ {
        if first == meetNode {
            return first
        }
        first = first.Next
        meetNode = meetNode.Next
    }
}


func GetMeetNode(head *ListNode) *ListNode {

    fast := head
    slow := head

    for i := 0;;i++ {
        if fast == nil || fast.Next == nil {
            return nil 
        }
        fast = fast.Next.Next
        slow = slow.Next
        if slow == fast {
            return slow
        }
    }
    return nil
}

全部评论
列方程,思路很清晰
点赞 回复 分享
发布于 2023-10-25 22:09 上海

相关推荐

程序员猪皮:看不到八股什么意思
点赞 评论 收藏
分享
一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务