Leetcode 142. 环形链表 II

注意的点:

1、注意里面的判断条件,虽然代码少但是其实逻辑很多。

解法:快慢指针

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

class Solution:
    def detectCycle(self, head: Optional[ListNode]) -> Optional[ListNode]:

        # 快慢指针
        slow, fast = head, head

        if not head: return None

        while fast.next and fast.next.next:
            slow = slow.next
            fast = fast.next.next
            if slow == fast: break # 得放在后面
        
        if not fast.next or not fast.next.next: 
            return None

        slow = head
        while slow != fast:
            slow = slow.next
            fast = fast.next

        return fast
            
相关推荐
化学在逃硬闯CS20 小时前
【Leetcode热题100】108.将有序数组转换为二叉搜索树
数据结构·c++·算法·leetcode
追随者永远是胜利者20 小时前
(LeetCode-Hot100)5. 最长回文子串
java·算法·leetcode·职场和发展·go
tankeven20 小时前
HJ86 求最大连续bit数
c++·算法
ValhallaCoder20 小时前
hot100-回溯II
数据结构·python·算法·回溯
追随者永远是胜利者20 小时前
(LeetCode-Hot100)19. 删除链表的倒数第 N 个结点
java·算法·leetcode·链表·go
就不掉头发20 小时前
动态规划算法 --积小流以成江海
算法·动态规划
坚持就完事了20 小时前
Java实现数据结构中的链表
java·数据结构·链表
写代码的小球20 小时前
C++ 标准库 <numbers>
开发语言·c++·算法
拳里剑气20 小时前
C++:哈希
开发语言·数据结构·c++·算法·哈希算法·学习方法
闻缺陷则喜何志丹20 小时前
【高等数学】导数与微分
c++·线性代数·算法·矩阵·概率论