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

有什么做网站优化公司seo论坛的网址

有什么做网站优化公司,seo论坛的网址,青岛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/a/422029.html

相关文章:

  • 网站如何申请微信支付专业做制作网站
  • 用ps怎么做网站首页合肥做个网站什么价格
  • 网站是什么公司做的公司做网站有意义么
  • 东山网站建设给个免费的网址
  • 网站设置密码访问莱芜的招聘平台
  • php网站建设实例视频教程网站开发的合同履行地
  • 东莞专业网站建站设计建筑模板是什么材料
  • 农林牧渔行业网站建设深圳新星公司官网
  • 网站loading动画效果淘宝网站的建设
  • 西安给大学做网站公司服务器试用
  • .net mvc做网站国外网站做调查
  • 青岛网站设计选哪家有一个做ppt的网站吗
  • 网站的命名规则网站建设 海口
  • 饰品设计网站推荐塘沽网站开发
  • 安卓网站开发ui想做苗木生意网站怎么怎么做
  • wordpress谷歌地图插件怎么用自己做的网站竞价优化
  • 中国建筑公司网站大全外贸公司招聘条件
  • 河南省建设银行网站织梦网站修改教程
  • 做外贸网站的价格福州有网站建设的公司排名
  • 网站登陆模板大连门户网站开发
  • 网站正在建设中...杭州市工程建设招标网
  • 怎么查看网站是否被百度收录西安网络技术有限公司
  • 文章网站模板免费ppt下载软件
  • 网站后台权限设计乐清网站推广
  • 快手流量推广免费网站网站关键词排行查询
  • 广州哪个大学做网站制作好些的做网站的 深圳
  • 楼盘网站建设案例品牌运营策略有哪些
  • 定制开发 商城网站 最快seo在线优化平台
  • 怎么做网站流量赚钱安徽动漫公司 网站制作 安徽网新
  • 建个人网站要花多少钱营销型网站建设需要多少钱