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
            
相关推荐
DeepModel15 分钟前
【统计检验】方差分析(ANOVA)
算法
sz-lcw15 分钟前
HOG特征向量计算方法
人工智能·python·算法
闻缺陷则喜何志丹22 分钟前
【博弈论】P8144 [JRKSJ R4] BBWWBB|普及+
c++·算法·洛谷·博弈论
l1t28 分钟前
Qwen 3.5plus一步做对的欧拉计划701题
算法·动态规划·欧拉计划
Book思议-31 分钟前
【数据结构实战】链表找环入口的经典问题:快慢指针法
c语言·数据结构·算法·链表
tankeven36 分钟前
HJ135 计树
c++·算法
㓗冽37 分钟前
时间转换-进阶题12
c++·算法
炽烈小老头44 分钟前
【 每天学习一点算法 2026/03/19】子集
学习·算法
我能坚持多久1 小时前
【初阶数据结构11】——链式二叉树知识补充
数据结构·算法
liuyao_xianhui1 小时前
优选算法_两数之和_位运算_C++
java·开发语言·数据结构·c++·算法·链表·动态规划