day3:142. 环形链表 II

环,可以联想到操场跑步。两个人同时同地出发,当跑得快的人第一次追上跑的慢的人,快的人一定比慢的人多跑一圈

解题方法:快慢指针

```js

/**

* Definition for singly-linked list.

* function ListNode(val) {

* this.val = val;

* this.next = null;

* }

*/

/**

* @param {ListNode} head

* @return {ListNode}

*/

var detectCycle = function(head) {

let fast = head

let slow = head

let hasCycle = false

while(fast && fast.next){

fast = fast.next.next

slow = slow.next

if(fast == slow){

hasCycle = true

break

}

}

if(hasCycle){

fast = head

while(fast != slow){

fast = fast.next

slow = slow.next

}

}

return hasCycle? slow:null

};

```

总结一下我之前存在的问题:

1.指针移动语法:fast = fast.next.next,而非数字加法:fast +=2

2.第二个循环条件:fast != slow,而非:fast == slow

3.无环情况的特殊处理

关联知识:js对象比较 == 和 === 完全等价

在 JavaScript 中比较两个对象,比较的是它们的内存地址(引用)

相关推荐
IT_陈寒5 分钟前
Vite这个坑我帮你踩了,动态导入居然这样才生效
前端·人工智能·后端
贩卖黄昏的熊7 分钟前
flex 布局快速梳理
开发语言·javascript·css3·html5
swipe8 分钟前
Mem0 x Agent 实战系列:分层记忆 + 三路召回,搭建真正可用的长期记忆层
前端·javascript·面试
鹤鸣的日常15 分钟前
前端运行时动态环境变量方案
前端·react.js·docker·前端框架·vue·gitlab
Lee川16 分钟前
Event Loop 面试通关:从原理到口述再到实战
前端·面试
kyriewen37 分钟前
手写 call、apply、bind:从原理到实现,附 3 个最容易忽略的边界情况
前端·javascript·面试
用户21816970493043 分钟前
swift (三) 枚举 结构体 类
前端
胡萝卜术44 分钟前
从内存视角重新认识 JavaScript 数据类型:一份深度学习笔记
前端·javascript·面试
IVEN_1 小时前
记一次诡异的前端白屏故障:Nginx Proxy Cache 内存缓存"幽灵"事件
前端·nginx
如果超人不会飞1 小时前
TinyRobot SuggestionPills紧凑的建议按钮组组件
前端·vue.js