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
            
相关推荐
.YM.Z13 小时前
【数据结构】:排序(一)
数据结构·算法·排序算法
Chat_zhanggong34513 小时前
K4A8G165WC-BITD产品推荐
人工智能·嵌入式硬件·算法
百***480713 小时前
【Golang】slice切片
开发语言·算法·golang
墨染点香13 小时前
LeetCode 刷题【172. 阶乘后的零】
算法·leetcode·职场和发展
做怪小疯子13 小时前
LeetCode 热题 100——链表——反转链表
算法·leetcode·链表
做怪小疯子15 小时前
LeetCode 热题 100——矩阵——旋转图像
算法·leetcode·矩阵
努力学习的小廉15 小时前
我爱学算法之—— BFS之最短路径问题
算法·宽度优先
高山上有一只小老虎16 小时前
构造A+B
java·算法
木头左16 小时前
缺失值插补策略比较线性回归vs.相邻填充在LSTM输入层的性能差异分析
算法·线性回归·lstm
sin_hielo16 小时前
leetcode 2435
数据结构·算法·leetcode