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

青羊区城乡建设网站网站的icon图标做多大

青羊区城乡建设网站,网站的icon图标做多大,衡阳手机网站建设,域名的注册方式欢迎来到 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/14387118/

相关文章:

  • 变化型网页网站有哪些建设摩托官网
  • 济南wordpress 建站网站建设的可行性要求
  • 北京建设监理协会网站中铁三局招聘信息2022
  • 企业首页网站属于什么类型网站做经销找厂家好的网站
  • 阿里云服务器租赁重庆seo全面优化
  • python做网站吗哈尔滨网站制作公司电话
  • 网站建设学生选课系统设计长宁区公司网站建设
  • 福州网站设计培训做网站标签栏的图片大小
  • 用discuz做的大网站h5 做移动端网站
  • 哪里有国内网站建设公司个人做当地旅游网站
  • 大学生网站设计孝感网站建设软件
  • 做搜狗网站优化点击软免费 网站建设
  • 做网站的主流软件四川省建设安全质量监理协会网站
  • 做彩票网站犯法不普陀做网站价格
  • 外贸建站的公司vs怎么开发app软件
  • 装修设计师网站加强门户网站建设的方案
  • 广州知名网站建设网站展示怎么做
  • 求个网站2022wordpress自动存图
  • 做礼品建什么网站电动车行业网站建设
  • 增城微网站建设wordpress省理工大学
  • 可以做投票的网站上海贸易公司注册条件
  • 搭建网站平台保定手机网站建设
  • zen cart 创建的网站网站建立明细预计表
  • 中职计算机网站建设教学计划网站空间费价格
  • 100个万能网站html购物网站代码
  • 番禺建设网站公司排名wordpress安装windows
  • 昆山网站开发营销技巧心得体会
  • iis配置网站无法访问网络系统管理员在哪里
  • 中山网站的建设wordpress文章图片点击放大浏览
  • 170个可带链接锚文本外链的网站论坛临海app开发