如何判断链表是否存在环?

魏小言
云原生领域优质创作者
博客专家认证
2022-04-29 11:16:32

目录

题目

思路

代码

附录

如何判断链表是否存在环?
题目
如何判断链表是否存在环?

思路
快慢指针,链表存在环,快指针将会等于慢指针,返回 true;非环,则会遇 nil,返回 false

代码
package main
 
import "fmt"
 
func main () {
 
    a:= new(ListNode)
 
    b:= new(ListNode)
 
    c:= new(ListNode)
 
    a.Next = b
 
    a.Val = 0
 
    b.Next = c
 
    b.Val = 1
 
    c.Next = a
 
    c.Val = 2
 
    fmt.Println("hello https://tool.lu/",IsCys(a))
 
}
 
type ListNode struct{
 
    Val int
 
    Next *ListNode
 
}
 
func IsCys(l *ListNode) bool{
 
    if l == nil || l.Next == nil{
 
        return false
 
    }
 
    s:=l
 
    f:=l.Next
 
    for f!=s{
 
        if f==nil || f.Next==nil{
 
            return false
 
        }
 
        s = s.Next
 
        f = f.Next.Next
 
    }
 
    //入环的第一个节点
 
    fmt.Println("next node is :",s.Next.Val)
 
    return true
 
}
附录
————————————————
版权声明:本文为CSDN博主「魏小言」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34417408/article/details/124490693

...全文
344 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-数据结构与算法 发布问题, 以便更快地解决您的疑问

16

社区成员

发帖
与我相关
我的任务
社区描述
code杂坛:提供初级同学进阶的深度与广度!关注一线 “ 互联网时讯、各技术栈、开源产品、面试技巧......“ 等最新动态
云原生架构设计模式 个人社区
社区管理员
  • 魏小言
  • flybirding10011
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

hi,欢迎加入 “code杂坛” 社区!

code杂坛:提供初级同学进阶的深度与广度!关注一线 “ 互联网时讯、各技术栈、开源产品、面试技巧......“ 等最新动态

在这里你可以:

  • 学习最新大厂技术知识
  • 掌握技能进阶各种技巧
  • 交到志同道合的朋友
  • 获取最新图书资讯
  • 参与活动免费赠书
  • 与我们的作者、译者互动!

 

加入我们成为 code杂坛 的同学

【欢迎联系】

微信公众号:code杂坛

试试用AI创作助手写篇文章吧