(一)今天要学的是双指针,思路感觉是初等的追击题学校资料A追B。接下来是双指针的介绍(二)双指针1.为什么要用双指针来判断一个链表是否为环?快指针追上慢指针,可以减少空间,判断是否成环;2、双指针的定义:快速指针:步数大于等于2的移动指针;慢指针:步数为1的移动指针;在链表中当你使用两个速度不同的指针时会发生什么:如果没有环,那么快的指针会停在链表的末尾。如果有循环,快指针最终会遇到慢指针。给你一个链表的头节点head,判断链表是否有环。如果链表中有一个结点可以通过不断跟踪next指针再次到达,那么链表中就存在环路。为了表示给定链表中的环,评估系统内部使用整数pos表示链表尾部相连的链表中的位置(索引从0开始)。注意:pos不作为参数传递。只是为了识别链表的实际情况。如果链表中存在循环,则返回true。否则,返回false。3.如何实现/***单向链表的定义。*functionListNode(val){*this.val=val;*this.next=null;*}*//***@param{ListNode}head*@return{boolean}*/varhasCycle=function(head){//快速指针初始化letfast=head//慢速指针初始化,同起点让slow=headwhile(fast&&fast.next){fast=fast.next.next//走2步slow=slow.next//走1步if(fast==slow){returntrue;}}返回假};以上参考链接Leecodehttps://leetcode-cn.com/leetb。..写在最后的话在学习的路上,我经常懈怠《有想学技术需要监督的同学嘛~》https://mp.weixin.qq.com/s/Fy...
