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

青羊区城乡建设网站05网全部答案数学

青羊区城乡建设网站,05网全部答案数学,wordpress 调用侧边栏,网站设计网站维护欢迎来到 Claffic 的博客 #x1f49e;#x1f49e;#x1f49e; 前言#xff1a; 快慢指针指的是每次指针移动的步长#xff0c;是解决链表相关的题目的一大利器#xff0c;下面我将以例题的形式讲解快慢指针法。 目录 一. 链表的中间结点 思路#xff1a; 代码实… 欢迎来到 Claffic 的博客   前言 快慢指针指的是每次指针移动的步长是解决链表相关的题目的一大利器下面我将以例题的形式讲解快慢指针法。  目录 一. 链表的中间结点 思路 代码实现 二. 链表中倒数第k个结点 思路 代码实现 三.  判断链表中是否有环 思路 代码实现 四. 返回链表入环的第一个结点 思路 代码实现 一. 链表的中间结点 点我做题 思路 创建两个快慢指针 slow , fast 起始共同指向头节点slow 每次走一步fast 每次走两步当 fast 为空或 fast 的下一个结点为空时slow  即是中间节点的位置。 解释 由于 fast 每次走两步slow 每次走一步slow 总是落后 fast 整体一半的长度最终 slow 理应为中间结点。 结点数为奇数 最终 fast 在最后一个结点此时结束的标志为 fast-next NULL 结点数为偶数 最终 fast 在最后一个结点的下一个指向此时的结束标志为 fast NULL;  代码实现 struct ListNode* middleNode(struct ListNode* head){struct ListNode* slow,*fast;slow head;fast head;while(fast fast-next){slow slow-next;fast fast-next-next;}return slow; } 二. 链表中倒数第k个结点 点我做题 思路 同样创建两个快慢指针 slow , fast 起始共同指向头节点先让 fast 走 k 步再让 fast 和 slow 同时前进直到 fast 为空为止。 解释  先让 fast 走 k 步那么 fast 与 slow 之间就隔了 k-1 个结点fast 与 slow 同时前进直到 fast 为空时fast 与 slow 之间依然隔 k-1 个结点那就是倒数第 k 个结点。 代码实现 int kthToLast(struct ListNode* head, int k){struct ListNode* fast,*slow;fast slow head;if(head NULL){return NULL;}//fast 前进 k 步while(k--){fast fast-next;}//slow 与 fast 共同前进while(fast){slow slow-next;fast fast-next;}//注意返回的是整型数值return slow-val; } 三.  判断链表中是否有环 点我做题 思路 快慢指针 slow , fast都从 head 开始slow 一次走一步fast 一次走两步如果 slow 和 fast 能相遇则链表有环。 解释 主要是证明 有环情况下两个指针一定能相遇 fast 比 slow 先进入环如图假设 slow 和 fast 的位置这两个指针之间差 N 步 由于 fast 每次走两步slow 每次走一步所以 slow 和 fast 之间的距离每次缩短 1  N - 1 N - 2 N - 3 ... 2 1 0    //此时两者相遇 证毕。  代码实现 bool hasCycle(struct ListNode* head) {struct ListNode* fast,*slow;fast slow head;while(fast fast-next){slow slow-next;fast fast-next-next;if(fast slow){return true;}}return false; } 四. 返回链表入环的第一个结点 点我做题 思路 这里要先放一个结论 在链表有环的情况下一个指针在起始结点开始走另一个结点在相遇点开始走最终两个指针会在入环点相遇。 快慢指针 slow , fast都从 head 开始slow 一次走一步fast 一次走两步找到相遇点后再让 start 与 meet 同时前进两者相等的点即是入环点。 解释 自然要证明上边的结论 在这里我们设几个常量 L起始点到入环点的距离 X入环点到相遇点的距离 C环的周长。 已知条件 slow 走的距离L X fast 走的距离L n*C X (n 1) fast 走的长度是 slow 走的长度的 2 倍。 推导 fast 走的长度是 slow 走的长度的 2 倍 --  2*(L X)   L n*C X (n 1) 整理得L C - X (n - 1)*C  (n 1). 对 L C - X (n - 1)*C  (n 1) 的解释 C - X (n - 1)*C  (n 1) 原本是 meet 到 innode 要走的所有可能距离 而 L C - X (n - 1)*C  (n 1) 说明 start 到 innode 要走的距离与 meet 到 innode 要走的所有可能距离相等所以两者相遇的点一定是 innode. 代码实现 struct ListNode* detectCycle(struct ListNode *head) {struct ListNode* slow,*fast;slow fast head;while(fast fast-next){slow slow-next;fast fast-next-next;if(slow fast){struct ListNode* meet slow;struct ListNode* start head;while(meet ! start){meet meet-next;start start-next;}return meet;}}return NULL; } 总结 快慢指针是解决链表问题的一大利器建议多画图理解掌握。  码文不易  如果你觉得这篇文章还不错并且对你有帮助不妨支持一波哦
http://www.hkea.cn/news/14318257/

相关文章:

  • 网站备案查询官网入口网站关键词设置
  • 网站产品详情页怎么做中小企业加盟网站建设
  • deals网站建设计算机网络设计是干什么的
  • wordpress老站开启多站点请人做网站合同
  • 陕西省建设执业资格注册管理中心网站苏州网站建设设计公司
  • 做一个网站开发项目有哪些阶段深圳网络优化有限公司
  • 有一个网站叫浪什么腾讯云域名查询
  • 溧阳住房和城乡建设局网站wordpress做电商
  • 生态农业网站建设方案p2p网站建设要多少钱
  • 绍兴企业做网站企业运营方案
  • 网站制作模板wordpress评论设置
  • 陕西专业网站建设中国互联网协会官网
  • 找人做logo网站成品ppt的网站免费观看
  • 做海产品的外贸网站网站托管平台
  • 做家常便饭网站用易语言做钓鱼网站
  • 网站设计和制作费用贵州省公路建设有限公司网站
  • 网站备案注销申请表苏州天狮建设监理有限公司网站
  • 重点实验室网站建设的意义wordlink网站开发
  • 网站前台设计个人网页设计作品开题报告
  • 重庆网站建设重庆零臻科技价破解wordpress登录密码
  • 学校网站建设调查报告家具网站建设便宜
  • 百度网站权重排名保定市建设局质监站网站
  • wordpress网站建设教程wordpress 文章太窄
  • one dirve做网站办公室工作绩效 网站建设
  • 网站素材模板 站长ftp怎么设置网站首页
  • 网站做联盟收入网上智慧团建登录入口
  • 企业网站推广论述样本代替做网站
  • 微网站生成app商城开发建设
  • 企业网站 asp phpiis搭建网站时 属于默认文档的是
  • 商城网站建设合同书如何建设一个简易的网站