首页 > 其他分享 >快慢指针判断链表中是否存在循环

快慢指针判断链表中是否存在循环

时间:2023-04-24 11:34:46浏览次数:34  
标签:快慢 位置 链表 循环 移动 指针

给链表设置快慢两个指针,每次移动时,快指针的速度是慢指针的一倍。即每次快指针移动两次,慢指针移动一次。

如果存在循环,快指针跑两圈就可以追上慢指针。

 

为什么不让慢指针停在原地等呢?

因为循环有可能出现在中间位置。如此一来,循环过的位置就不必从头再循环。

 

整个过程的所有位置快指针两遍,慢指针一遍,即三遍循环。因此,时间复杂度为(On)

标签:快慢,位置,链表,循环,移动,指针
From: https://www.cnblogs.com/uip001/p/17348914.html

相关文章

  • 指针数组和数组指针
    优先级()>[]>*强调的放后面int*p[10] int*p[10]表示指针数组,强调数组概念,是一个数组变量,数组大小为10,数组内每个元素都是指向int类型的指针变量int(*p)[10]int(*p)[10]表示数组指针,强调是指针,只有一个变量,是指针类型,不过指向的是一个int类型的数组,这个数组大......
  • java调用GDAL,接口运行一次出现A fatal error has been detected by the Java Runtime
    参考文章:https://www.jianshu.com/p/4bffe29e3a02问题描述:通过调用GDAL写的SpringBoot接口,第一次访问成功,第二次报错,显示报错的位置为gdal库。尝试了很多方法https://www.cnblogs.com/jokingremarks/p/15132599.html#!comments仍然不成功,感觉应该是第二次运行接口时,进行垃圾回......
  • [Leetcode]找出链表公共结点
    力扣链接思路:先求出两个链表的长度差长链表先走差距步同时走,第一个地址相同的是交点代码:/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*getIntersectionNode(structListNode*he......
  • 19删除链表的倒数第N个节点
    力扣刷题19.删除链表的倒数第N个节点--day4题目分析这道题目比较简单,熟练掌握单链表中删除节点的操作解法ListNode*removeNthFromEnd(ListNode*head,intn){ListNode*dummyHead=newListNode();dummyHead->next=head;ListNode*p=head;int......
  • 24两两交换链表中的节点
    力扣刷题24.两两交换链表中的节点--day4题目分析还是那句话,需要先模拟一下节点交换的过程将整个过程细分为一个个小过程,以此类推下去注意画图分析设置三个指针postcurpre注意1.节点的交换过程2.指针的递推解法ListNode*swapPairs(ListNode*head){if(!......
  • ❗❗142环形链表II
    力扣刷题142.环形链表II--day4题目分析这道题目难度较大,特别是要求空间复杂度为O(1)的时候如果不追求空间复杂度的话,可以使用hash表把目前遍历的节点指针存入hash表,当下次在hash表中找到该节点时,即找到了答案空间复杂度为O(1)的解法:较为复杂,具有一定的数学分......
  • 【C++入门】类和对象(一) 详解(class、struct、类的定义、类的实例化、类的封装、对象
    1.面向过程和面向对象初步认识面向过程更加关注解决问题的过程和步骤。而面向对象关注的是对象,对一个事情拆分成不同的对象,靠对象之间的交互实现。例如:外卖系统面向过程:上架→点餐→派单→送餐注重过程步骤面向对象:(更加贴近现实之间的业务逻辑交互)骑手→商家←用户注重对象和对象......
  • C语言指针运算
    给一个指针加1表示要让指针指向下一个变量,也就是在地址值上加一个sizeof(指针所指的类型),例如:inta[10];int*p=a;*(p+1)=a[1];*(p+n)=====ac[n] 同理:这些指针运算可以对指针做:1.给指针加减一个整数(减就是往前移一位)2.递增递减(++/--)3.两个指针相减(其实就是两个指针的差......
  • c语言刷——滑动窗口&&双指针 leetcode合集
    目录字符串问题3.无重复字符的最长子串76.最小覆盖子串424.替换后的最长重复字符438.找到字符串中所有字母异位词1208.尽可能使字符串相等连续1的问题485.最大连续1的个数487.最大连续1的个数II(p)1004.最大连续1的个数III综合题239.滑动窗口最大值字符串问题3.无重......
  • 代码随想录算法训练营第四天 | 24.两两交换链表
     ......