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

装修设计网站哪个好用114啦网址导航官网

装修设计网站哪个好用,114啦网址导航官网,河北网络科技公司有哪些,seo的网站❤个人主页: 链表环结构 0.前言1.环形链表(基础)2.环形链表Ⅱ(中等)3.证明相遇条件及结论3.1 问题1特殊情况证明3.2 问题1普适性证明 0.前言 在这篇博客中,我们将深入探讨链表环结构的检测方法:…

在这里插入图片描述
❤个人主页:

链表环结构

  • 0.前言
  • 1.环形链表(基础)
  • 2.环形链表Ⅱ(中等)
  • 3.证明相遇条件及结论
    • 3.1 问题1特殊情况证明
    • 3.2 问题1普适性证明

在这里插入图片描述

0.前言

在这篇博客中,我们将深入探讨链表环结构的检测方法:
Floyd算法的原理:如何通过快慢指针检测环?
环入口的定位:如何找到环的起点?
通过这篇博客,我会对链表中的环结构进行相关证明解释,总结学习。

1.环形链表(基础)

题目链接:https://leetcode.cn/problems/linked-list-cycle/description/

题目描述:
在这里插入图片描述
代码实现:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/bool hasCycle(struct ListNode *head) {struct ListNode*slow,*fast;slow = fast = head;while(fast&&fast->next){slow=slow->next;fast=fast->next->next;if(slow==fast)return true;}return false;
}

代码解释:

这个题目的实现逻辑比较简单,我们定义快慢指针来进行实现,fast指针每次走2步,slow指针每次走1步,当快指针和慢指针相遇的时候,如果链表中存在环,则返回 true 。否则,返回 false。

2.环形链表Ⅱ(中等)

题目链接:https://leetcode.cn/problems/linked-list-cycle-ii/description/
题目描述:
在这里插入图片描述

代码实现1:

struct ListNode* detectCycle(struct ListNode* head) {struct ListNode* fast;struct ListNode* slow;fast = slow = head;while (fast && fast->next){//快慢指针依次走slow = slow->next;fast = fast->next->next;if (slow == fast){struct ListNode* start = head;struct ListNode* meet = slow;while (meet != start){meet = meet->next;start = start->next;}return meet;}}return NULL;
}

代码解释1:

在这里插入图片描述

代码实现2:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) 
{struct ListNode* tailA=headA,*tailB=headB;int lenA=1,lenB=1;while(tailA){tailA=tailA->next;++lenA;}while(tailB){tailB=tailB->next;++lenB;}int gap=abs(lenA-lenB);struct ListNode* longlist=headA,*shortList=headB;if(lenA<lenB){longlist=headB;shortList=headA;}while(gap--){longlist=longlist->next;}while(longlist!=shortList){longlist=longlist->next;shortList=shortList->next;}return longlist;}struct ListNode *detectCycle(struct ListNode *head) {struct ListNode* fast;struct ListNode* slow;fast=slow=head;while(fast&&fast->next){//快慢指针依次走slow=slow->next;fast=fast->next->next;if(slow==fast){//转换成求交点struct ListNode* meet=slow;struct ListNode* lt1=meet->next;struct ListNode* lt2=head;meet->next=NULL;return getIntersectionNode(lt1,lt2);}}return NULL;
}

代码解释2:
在这里插入图片描述

3.证明相遇条件及结论

3.1 问题1特殊情况证明

问题1: 为什么slow走1步,fast走2步,他们会相遇吗?会不会错过?请证明
在这里插入图片描述

3.2 问题1普适性证明

问题:为什么slow走1步,fast走3步(x>=3),他们会相遇吗?会不会错过?请证明
在这里插入图片描述

感谢您的阅读支持!!!
后续会持续更新的!!!
文末投票支持一下!!!

在这里插入图片描述

http://www.dtcms.com/wzjs/169250.html

相关文章:

  • 企业网站建设 新闻宣传怎么做小说推广挣钱
  • 福州网站建设求职简历阜平网站seo
  • 网站 国外服务器专业做灰色关键词排名
  • 免费发布网站seo外链今日头条热搜榜
  • 建筑劳务公司名字起名大全seo查询爱站
  • 中国建设银行网站主要功能吸引人的微信软文
  • 静态网页设计作业成品三台网站seo
  • 网站商城建设的维度seo外包优化
  • 手机建站平台淘客网络营销的一般流程
  • 免费做暧暧网站网络营销的特点有哪些
  • 推荐完善政府网站建设seo需要会什么
  • 网站建设知乎深圳网络推广哪家好
  • wordpress新手基础兰州快速seo整站优化招商
  • 上海住房和城乡建设委员会门户网站seo和sem是什么
  • 校园网站建设简介世界疫情最新数据
  • 做网站需要服务器吗企业培训计划
  • 自己建的网站有乱码软文推广多少钱
  • 做ppt比较好的网站关键词有哪些关联词
  • 有哪些做鞋机设备的网站微信推广平台收费标准
  • 阿里云网站建设方案书中山市优化大师哪个好
  • 盈世coremail企业邮箱抖音seo什么意思
  • by最新域名查询优化大师卸载不了
  • 虚拟主机 视频网站百度seo怎么查排名
  • 招聘网站做销售网络营销的seo是做什么的
  • 海外营销公司seo培训班
  • php动态网站开发概念目前推广软件
  • 凡科网做网站怎么样百度云网盘
  • js制作网页制作步骤西安百度网站排名优化
  • 如何注册免费网站软文营销的概念
  • 聊城做网站的公司案例西安seo托管