leetcode 141. 环形链表 js 实现
2023-09-14 09:07:43 时间
给你一个链表的头节点 head
,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪 next
指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos
来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos
不作为参数进行传递 。仅仅是为了标识链表的实际情况。
如果链表中存在环 ,则返回 true
。 否则,返回 false
。
示例 1:
输入:head = [3,2,0,-4], pos = 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点。
原题
/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @return {boolean} */ var hasCycle = function(head) { // 定义一个 map let map = new Map(); // 遍历链表 while(head){ // 如果 map 中已经存在该节点,又碰到该节点,则说明是环,直接返回 true if(map.has(head)){ return true } // 否则给map添加新的 key,val map.set(head,true) // 指向下一个节点继续遍历 head= head.next; } return false };
复杂度分析
时间复杂度:O(N),其中 N 是链表中的节点数。最坏情况下我们需要遍历每个节点一次。
空间复杂度:O(N),其中 N 是链表中的节点数。主要为哈希表的开销,最坏情况下我们需要将每个节点插入到哈希表中一次。
相关文章
- Fabric.js 使用纯色遮挡画布(前景色)
- leetcode 191 二进制中1的个数 js 实现
- ☆打卡算法☆LeetCode 219. 存在重复元素 II 算法解析
- js面试题及答案2020_JS面试题大全
- 日拱一卒,LeetCode周赛287,训练你的逆向思维
- LeetCode 1. 两数之和 Two Sum「建议收藏」
- LeetCode周赛300,没能AK,刚拿到的勋章要没了……
- JS跳转代码_js中跳转页面路径
- Leetcode题目078-子集
- LeetCode 14. 最长公共前缀
- JavaScript刷LeetCode拿offer-并查集
- Js生成二维码_js在线生成二维码
- leetcode 1351. 统计有序矩阵中的负数 js实现
- 用Js怒刷LeetCode_2023-02-27
- map小试牛刀,LeetCode界的abandon有多难?
- 19道leetcode二分查找算法
- js 数组去除重复数据-当WPS开始像支持VBA一样支持JS语言时,微软又该何去何从?
- 前端工程师leetcode算法面试必备-简单的二叉树
- leetcode 71. 简化路径
- clipboard.js:最轻便的复制页面内容到剪切板的JS
- JS将文件传输至MySQL数据库(.js传文件至mysql)
- JS将所有对象s的属性复制给对象r(原生js+jquery)
- js获取当前地址JS获取当前URL的示例代码