不会飞的章鱼

熟能生巧,勤能补拙;念念不忘,必有回响。

leetcode 141-linked-list-cycle | 环形链表

题目链接

https://leetcode-cn.com/problems/linked-list-cycle/

题目解析

该题是面试常考题型,以前好友面字节游戏引擎岗的时候专门考过。

快慢指针Golang

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func hasCycle(head *ListNode) bool {
if head == nil || head.Next == nil {
return false
}
slow := head //慢指针
fast := head.Next //快指针
for fast != nil && fast.Next != nil {
fast = fast.Next.Next
slow = slow.Next
if slow == fast {
//一块一慢,如果两个指针指向同一个值,说明链表有环
return true
}
}

return false
}
------ 本文结束------
如果本篇文章对你有帮助,可以给作者加个鸡腿~(*^__^*),感谢鼓励与支持!