如果链表中含有环,如何计算这个环的起点

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
func detectCycle(head *ListNode) *ListNode {
    if head==nil||head.Next==nil{
        return nil
    }
    p1,p2:=head,head
    for p2!=nil{
        p1=p1.Next
        p2=p2.Next
        if p2!=nil{
            p2=p2.Next
        }
        if p1==p2{
            p1=head
            for p1!=p2{
                p1=p1.Next
                p2=p2.Next
            }
            return p1
        }
    }
    return nil
}

  

 

posted @   ☞@_@  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示