题解 | #判断链表中是否有环#
判断链表中是否有环
https://www.nowcoder.com/practice/650474f313294468a4ded3ce0f7898b9
package main
import . "nc_tools"
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
*
* @param head ListNode类
* @return bool布尔型
*/
func hasCycle(head *ListNode) bool {
if head == nil {
return false
}
if head.Next == head {
return true
}
reverseHead := &ListNode{}
// 遍历节点,所有节点都指向公共节点,如果出现指向一样的,那么判定有环
for head != nil {
if head.Next == nil {
return false
}
// 判断自环
if head.Next == head {
return true
}
if head.Next.Next == reverseHead {
return true
}
temp := head.Next
head.Next = reverseHead
head = temp
}
return false
}
