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

diywap手机网站系统沈阳关键词快照优化

diywap手机网站系统,沈阳关键词快照优化,四子王旗建设局网站,深圳企业网站建设设计公司文章目录 判断链表环的入口节点描述数据范围:复杂度要求:输入输出 示例代码实现思路解析注意事项: 判断链表环的入口节点 描述 给定一个链表,判断该链表是否存在环。如果存在环,返回环的入口节点;如果不存…

文章目录

  • 判断链表环的入口节点
    • 描述
      • 数据范围:
      • 复杂度要求:
      • 输入
      • 输出
    • 示例
    • 代码实现
    • 思路解析
    • 注意事项:

判断链表环的入口节点

在这里插入图片描述

描述

给定一个链表,判断该链表是否存在环。如果存在环,返回环的入口节点;如果不存在环,返回NULL

数据范围:

  • 链表长度 n n n 0 ≤ n ≤ 10000 0 \leq n \leq 10000 0n10000
  • 链表中任意节点的值满足 ∣ v a l ∣ ≤ 100000 |val| \leq 100000 val100000

复杂度要求:

  • 空间复杂度: O ( 1 ) O(1) O(1)
  • 时间复杂度: O ( n ) O(n) O(n)

输入

  • 输入一个链表的头节点 pHead,该链表可能包含环。

输出

  • 如果链表存在环,返回环的入口节点;否则返回 NULL

示例

示例 1:
输入:

{3, 2, 0, -4}, 1

返回值:

2

说明:

  • 链表{3, 2, 0, -4}有一个环,环的入口节点是值为2的节点。

示例 2:
输入:

{1}, -1

返回值:

NULL

说明:

  • 链表{1}没有环,返回NULL

示例 3:
输入:

{-1, -7, 7, -4, 19, 6, -9, -5, -2, -5}, 6

返回值:

6

说明:

  • 链表有环,环的入口节点是值为6的节点。

代码实现

/*** struct ListNode {*     int val;*     struct ListNode *next;* };*//*** 找到链表中环的入口节点* * @param pHead ListNode类 链表头结点* @return ListNode类 如果链表有环,返回环的入口节点,否则返回NULL*/
struct ListNode* EntryNodeOfLoop(struct ListNode* pHead) {// 判断链表是否为空或只有一个节点,若是则不存在环if (pHead == NULL || pHead->next == NULL) return NULL;struct ListNode* fast = pHead->next->next;  // 快指针初始为第二个节点struct ListNode* slow = pHead->next;        // 慢指针初始为第一个节点// 快慢指针相遇判断是否有环while (fast != slow) {// 如果快指针到达链表末尾,则没有环if (fast == NULL || fast->next == NULL)return NULL;fast = fast->next->next;  // 快指针每次移动两步slow = slow->next;        // 慢指针每次移动一步}// 如果有环,重新初始化慢指针到链表头,从而找到环的入口slow = pHead;while (fast != slow) {fast = fast->next;  // 快指针每次移动一步slow = slow->next;  // 慢指针每次移动一步}// 快慢指针相遇时即为环的入口节点return slow;
}

思路解析

  1. 快慢指针法判断是否有环

    • 初始化两个指针 fastslow,其中 fast 指针每次移动两步,slow 指针每次移动一步。
    • 如果链表存在环,快慢指针最终会在环内某个节点相遇;如果链表没有环,快指针会到达链表的尾部(即 fast == NULLfast->next == NULL)。
  2. 找到环的入口节点

    • 当快慢指针相遇时,慢指针重新回到链表头节点,快指针保持在相遇节点处。
    • 然后,两个指针都每次移动一步,最终会在环的入口节点相遇。
  3. 时间复杂度

    • 快慢指针第一次相遇的时间复杂度为 O ( n ) O(n) O(n),找到环的入口节点的时间复杂度也是 O ( n ) O(n) O(n),所以总时间复杂度为 O ( n ) O(n) O(n)
  4. 空间复杂度

    • 由于只使用了常数空间,因此空间复杂度为 O ( 1 ) O(1) O(1)

注意事项:

  • 需要确保链表为空或只有一个节点时,返回 NULL
  • 快指针每次移动两步,慢指针每次移动一步,可以有效地判断环并找到环的入口。
http://www.mmbaike.com/news/42075.html

相关文章:

  • 用vs做网站表格向上居中怎样去推广自己的网店
  • b2c购物网站的建设论文灰色行业怎么推广引流
  • 做网站开发的提成多少钱app拉新怎么对接渠道
  • 临平网站建设地推十大推广app平台
  • 深圳网站建设服务介绍搜狗收录入口
  • 济南做网站那家好常州seo关键词排名
  • 专业做效果图网站重庆seo培训
  • 网页模板下载了以后如何进行修改seo黑帽培训骗局
  • 重庆网站建设流程5月疫情最新消息
  • 响应设网站多少钱可以做学习软件的网站
  • 营口旅游网站开发互联网营销师培训大纲
  • 做mod游戏下载网站哈尔滨百度推广公司
  • 网站建设怎么搞seo数据是什么意思
  • 深圳很多90后做虚假彩票网站诈骗百度推广非企代理
  • 企业网站免费推广的方法.百度竞价排名平台
  • 福州网站建设服务公司指数分布的期望和方差
  • 网站 模板 html谷歌浏览器 安卓下载2023版
  • html个人网站制作网站优化推广
  • 汤姆叔叔官方网站建设seo 网站排名
  • 深圳 网站开发公司电话2023上海又出现疫情了
  • 网站开发的评论界面模板百度一下百度百科
  • 积分商城平台seo权威入门教程
  • 网站办公室文化建设郑州seo代理外包公司
  • 鄞州区优秀营销型网站建设首选360安全网址
  • 商城小程序公司怎么去优化关键词
  • 区域工业互联网平台宁波seo推荐优化
  • 吕梁seo网站建设宁波网络推广优化公司
  • 徐州网站建设推广百度知道一下
  • 网站建设公司山而seo搜索引擎优化工资多少钱
  • 网页美工设计的四大原则seo关键词优化推广哪家好