LeetCode刷题笔记141题:环形链表
想法:
设置快慢指针,快指针比慢指针总是快一步,如果有环形结构则总是会相遇。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def hasCycle(self, head: ListNode) -> bool:
# 链表中仅有一个元素或者一个元素都没有
if not head or not head.next:
return False
# 设置快慢指针
slow = head
fast = head.next
# 快指针总是比慢指针快一步,如果有环形结构则一定会相遇
while slow != fast:
if not fast or not fast.next:
return False
slow = slow.next
fast = fast.next.next
return True