题解 | #判断链表中是否有环#

判断链表中是否有环

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
}

全部评论

相关推荐

走不到的路就这样算了吗:大佬硬气
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务