16
社区成员




目录
题目
思路
代码
附录
如何判断链表是否存在环?
题目
如何判断链表是否存在环?
思路
快慢指针,链表存在环,快指针将会等于慢指针,返回 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