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

2023-07-30 LeetCode每日一题(环形链表 II)

2023-07-30每日一题

一、题目编号

142. 环形链表 II

二、题目链接

点击跳转到题目位置

三、题目描述

给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。

不允许修改 链表。

提示:

  • 链表中节点的数目范围在范围 [0, 104] 内
  • -105 <= Node.val <= 105
  • pos 的值为 -1 或者链表中的一个有效索引

示例1:
在这里插入图片描述
示例2:
在这里插入图片描述
示例3:
在这里插入图片描述

四、解题代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode *detectCycle(ListNode *head) {if(head == NULL){return head;}while(head->next != NULL){ListNode* node = head;int cnt = 0;while(node->next != NULL && cnt <= 10001){node = node->next;if(node == head){return head;}++cnt;}head = head->next;}return NULL;}
};

五、解题思路

(1) 直接采用暴力的解法即可解决问题。链表总长度最长为104,所以只需要一个指针移动大于这个数字就代表有环。

(2) 那么采用双指针来解决问题,一个指针从头结点开始一直往后遍历,另一个指针环绕一圈,如果到达前一个指针的位置那么就输出前一个指针了,如果一直到NULL,那么就输出NULL即可。

http://www.lryc.cn/news/104133.html

相关文章:

  • 设计模式——简单工厂模式
  • AnimatedVectorDrawable矢量图动画的使用和修改
  • 【C++】—— 多态的基本介绍
  • 一文详解:自动化测试工具——Selenium
  • [模版总结] - 集合划分类DFS模版
  • JavaScript中复制新的数组与原数组删除某个值——不影响新复制的数组的方法详解
  • easyui主表子表维护页面
  • k8s exam
  • C#,中国福利彩票《刮刮乐》的数学算法(02)——时来运转
  • 我的观影记录表【个人向】
  • 网络安全策略应包含哪些?
  • 【Git】Git GitHub
  • [STL]详解list模拟实现
  • C和C++的区别与联系
  • springboot通过接口执行本地shell脚本
  • 工欲善其事必先利其器,IT工作电脑更要维护好
  • 移动端个人中心UI设计
  • 开发接口,你需要先搞懂这些概念!
  • zookeeper常用命令
  • 亚马逊水基灭火器UL8测试报告ISO17025实验室办理
  • Shell学习脚本-if多分支结构
  • [SQL挖掘机] - 窗口函数 - lead
  • PyTorch Lightning教程四:超参数的使用
  • 2023 蓝桥杯真题B组 C/C++
  • 视频怎样分割成两段?分享几种视频分割方法
  • cyber_back
  • 价值 1k 嵌入式面试题-单片机 main 函数之前都做了啥?
  • 美团2024校招6000人;伯克利博士讲Llama 2技术细节;互联网转行AIGC最全指北;技术进步周期与创客崛起 | ShowMeAI日报
  • 【严重】PowerJob<=4.3.3 远程代码执行漏洞
  • 什么是 ASP.NET Core SignalR?