当前位置: 首页 > article >正文

代码随想录(day8)—环形链表

题目

预备知识点:

for和while的区别

while语句属于循环语句,在判断是,如果条件为true,则会继续判断,直到false为止,即会进行多次判断(除非一开始条件就是错的)。

if语句属于条件判断语句,如果条件是true,则继续执行,为false则跳出语句不执行,只会进行单次判断。

while与if语句的最大的相同点是都有至少一步的判断。

参考链接:while和if的区别-CSDN博客

Python中self用法详解

面向对象最重要的概念就是类(class)和实例(instance),类是抽象的模板,比如学生这个抽象的事物,可以用一个Student类来表示。而实例是根据类创建出来的一个个具体的“对象”,每一个对象都从类中继承有相同的方法,但各自的数据可能不同。

self在类中是必不可少的,它帮助类的方法识别并操作实例数据。

参考链接:Python中self用法详解_python self-CSDN博客

参考链接:

理解Python的链表ListNode_python listnode-CSDN博客

class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    def detectCycle(self, head):
        slow = head
        fast = head
        
        # 检查链表是否有环
        while fast and fast.next:
            fast = fast.next.next
            slow = slow.next
            
            # 找到快慢指针相遇的点
            if fast == slow:
                slow = head
                # 这里的作用是当fast和slow相等时,返回入环的第一个节点
                while fast != slow:
                    fast = fast.next
                    slow = slow.next
                return slow
        
        # 如果没有环,返回 None
        return None


http://www.kler.cn/a/282010.html

相关文章:

  • uniapp微信小程序转发跳转指定页面
  • 大模型呼叫中心,如何建设呼入机器人系统?
  • WPF的基础控件详解
  • 一体化运维监控管理平台:产品架构与功能解析
  • 开源项目低代码表单设计器FcDesigner获取表单的层级结构与组件数据
  • 4.2 Android NDK 基础概念
  • PyQt5中,editingFinished连接的槽函数中 QMessageBox 弹出两次
  • MagiskBoot编译解包打包boot.img
  • Linux系统使用Docker compose搭建开源文档系统Paperless-ngx
  • TS学习笔记
  • 【计算机网络】计算机网络的组成和功能
  • SpringBoot 项目——抽奖系统
  • webContextUnify的作用
  • mac安装java17(jdk17)
  • Netty+WebSocket实现高并发网络编程
  • 【Go - interface, 强类型语言中的任意类型 】
  • 【项目日记】高并发内存池---实现线程缓存
  • Linux学习记录(十三)----信号
  • 使用 JavaScript 实现图片上传
  • 视源CVTE嵌入式面试题及参考答案(200+面试题,17万字)
  • TCP vs UDP:揭秘可靠性与效率之争
  • Linux 软件包管理器yum 自动化构建工具-make/makefile
  • 游卡,三七互娱,得物,顺丰,快手,oppo,莉莉丝,康冠科技,途游游戏,埃科光电25秋招内推
  • PN结--
  • R 语言学习教程,从入门到精通,R 绘图饼图(23)
  • vector容器---性能优化