【Python练习】038. 编写一个函数,检查一个链表是否有环
038. 编写一个函数,检查一个链表是否有环
- 038. 编写一个函数,检查一个链表是否有环
- 示例代码
- 代码解释
- 测试结果
- 注意事项
- 实现方法
- 检查链表是否有环的方法
- 快慢指针法(Floyd's Cycle-Finding Algorithm)
- 哈希表法
- 其他方法(标记法)
038. 编写一个函数,检查一个链表是否有环
在 Python 中,可以通过使用快慢指针(Floyd 判圈算法)来检查一个链表是否有环。以下是实现这一功能的代码:
示例代码
class ListNode:"""定义链表的节点类。"""def __init__(self, value=0, next=None):self.value = valueself.next = nextdef has_cycle(head):"""检查链表是否有环。参数:head (ListNode): 链表的头节点。返回:bool: 如果链表有环,返回 True;否则返回 False。"""if not head:return Falseslow = head # 慢指针,每次移动一步fast = head # 快指针,每次移动两步while fast and fast.next:slow = slow.nextfast = fast.next.nextif slow == fast:return True # 如果快慢指针相遇,说明有环