题目
预备知识点:
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 = xself.next = Noneclass Solution:def detectCycle(self, head):slow = headfast = head# 检查链表是否有环while fast and fast.next:fast = fast.next.nextslow = slow.next# 找到快慢指针相遇的点if fast == slow:slow = head# 这里的作用是当fast和slow相等时,返回入环的第一个节点while fast != slow:fast = fast.nextslow = slow.nextreturn slow# 如果没有环,返回 Nonereturn None