如何判断链表是否存在环?
目录
题目
思路
代码
附录
如何判断链表是否存在环?
题目
如何判断链表是否存在环?
思路
快慢指针,链表存在环,快指针将会等于慢指针,返回 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
相关推荐
python判断链表是否有环的实例代码
在本篇文章里小编给大家整理的是关于python判断链表是否有环的知识点及实例代码,需要的朋友们参考下。
判断有向图中是否存在环
判断有向图中是否存在环,用邻接表做存储结构
快慢指针证明带环单链表
本文档详细证实带环单链表快慢指针证明方法,其实难以理解的地方就是证明这个指针是如何追到它的
算法大全-面试题-数据结构
目录 1.单链表反转 2.找出单链表的倒数第4个元素 3.找出单链表的中间元素 4.删除无头单链表的一个节点 5.两个不交叉的有序链表的合并 6.有个二级单链表,其中每个元素都含有一个指向一个单链表的指针。写程序把这个二级链表称一级单链表。 7.单链表交换任意两个元素(不包括表头) 8.判断单链表是否有环?如何找到环的“起始”点?如何知道环的长度? 9.判断两个单链表是否相交 10.两个单链表相交,计算相交点 11.用链表模拟大整数加法运算 12.单链表排序 13.删除单链表中重复的元素
常见算法笔试或面试题
各大it公司历年常见算法笔试或面试题,内有详细讲解。


