每天刷一道牛客题霸-第10天-链表中环的入口节点

题目

https://www.nowcoder.com/practice/6e630519bf86480296d0f1c868d425ad?tpId=190&&tqId=35178&rp=1&ru=/ta/job-code-high-rd&qru=/ta/job-code-high-rd/question-ranking

package main
import . "nc_tools"
/*
 * type ListNode struct{
 *   Val int
 *   Next *ListNode
 * }
 */

/**
 * 
 * @param head ListNode类 
 * @return ListNode类
*/
func detectCycle( head *ListNode ) *ListNode {

    if head == nil {
        return head
    }
    fast := head
    slow := head

    for fast != nil && slow != nil {
        if fast.Next != nil {
            fast = fast.Next.Next
        }else {
            return nil
        }
        slow = slow.Next
        if slow == fast {
            break
        }
    }
    if fast == nil || slow == nil {
        return nil
    }
    for fast != head {
        fast = fast.Next
        head = head.Next
    }
    return fast
    // write code here
}
#牛客题霸##题解#
全部评论

相关推荐

威猛的小饼干正在背八股:挂到根本不想整理
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务