leetcode-环形链表

141. 环形链表

题解:

这个问题可以使用快慢指针的方法来解决。首先,我们创建一个虚拟头节点,并将虚拟头节点的下一个节点指向head。然后我们创建两个指针,一个快指针和一个慢指针。快指针每次移动两个节点,而慢指针每次移动一个节点。如果链表中存在环,那么快指针和慢指针最终会在环内的某个位置相遇。如果链表中不存在环,那么快指针会先到达链表的尾部。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def hasCycle(self, head: Optional[ListNode]) -> bool:
        if not head or not head.next:
            return False
        dummy_head = ListNode(0)
        dummy_head.next = head

        slow = dummy_head
        fast = dummy_head.next

        while slow != fast:
            if not fast or not fast.next:
                return False
            slow = slow.next
            fast = fast.next.next
        return True

相关推荐

  1. leetcode-环形

    2024-01-22 15:46:04       37 阅读
  2. LeetCode热题100】【环形 II

    2024-01-22 15:46:04       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-22 15:46:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-22 15:46:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-22 15:46:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-22 15:46:04       20 阅读

热门阅读

  1. Hive之set参数大全-10

    2024-01-22 15:46:04       22 阅读
  2. MySQL——第一章 MySQL基础1

    2024-01-22 15:46:04       32 阅读
  3. 文字的力量

    2024-01-22 15:46:04       33 阅读
  4. FutureTask源码阅读

    2024-01-22 15:46:04       41 阅读
  5. ES-同词义配置

    2024-01-22 15:46:04       31 阅读
  6. 蓝桥杯求解回文数(栈求解版本)

    2024-01-22 15:46:04       39 阅读
  7. 使用sklearn严格计算AUROC和AUPRC

    2024-01-22 15:46:04       35 阅读
  8. idea实用快捷键

    2024-01-22 15:46:04       34 阅读
  9. rnn相关

    rnn相关

    2024-01-22 15:46:04      36 阅读
  10. 事务复习1-理论基础

    2024-01-22 15:46:04       34 阅读