LeetCode热题100-相交链表【JavaScript讲解】

题目:




分析:

哈希集合是一种特殊的数据结构,用于存储唯一的元素,并允许快速地进行插入、删除和查找操作‌。哈希集合的实现主要依赖于哈希函数和链表。

判断两个链表是否相交,可以使用哈希集合存储链表节点。

  • ‌遍历链表A‌:代码使用一个 while 循环遍历链表 headA。在每次迭代中,将当前节点添加到 visited集合中,并将当前节点更新为下一个节点。这样,当遍历完链表 headA 后,visited 集合中就包含了链表 headA 中的所有节点。
  • 遍历链表B并检查相交‌:然后,代码使用另一个 while 循环遍历链表headB。在每次迭代中,检查当前节点是否存在于 visited集合中。如果存在,说明当前节点是两个链表的相交节点,函数立即返回该节点。如果遍历完链表 headB 后没有找到相交节点,则函数返回null。

题解:

javascript 复制代码
/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */

/**
 * @param {ListNode} headA
 * @param {ListNode} headB
 * @return {ListNode}
 */
var getIntersectionNode = function(headA, headB) {
    let visited = new Set();
    let current = headA;
    while(current !== null){
        visited.add(current);
        current = current.next;
    }

    current = headB;
    while(current !== null){
        if(visited.has(current)){
            return current;
        }
        current = current.next;
    }
    return null;
}

通过:

相关推荐
小羊在睡觉6 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go
GISer_Jing6 小时前
Three.js着色器编译机制深度解析
javascript·webgl·着色器
丷丩6 小时前
MapLibre GL JS第22课:查看本地GeoJSON
前端·javascript·map·mapbox·maplibre gl js
油炸自行车6 小时前
Claude Code 错误:API Error: 400 Failed to deserialize the JSON body into the
开发语言·javascript·json·trae·claude code·api error 400
sheeta19986 小时前
LeetCode 每日一题笔记 日期:2026.05.29 题目:3300. 最小元素
笔记·leetcode
_日拱一卒6 小时前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
小白兔奶糖ovo10 小时前
【Leetcode】231. 2的幂
linux·算法·leetcode
丷丩10 小时前
MapLibre GL JS第19课:实时更新要素
前端·javascript·gis·map·mapbox·maplibre gl js
xiaohua0708day11 小时前
Lodash库
前端·javascript·vue.js
过期动态11 小时前
【LeetCode 热题 100】接雨水
java·数据结构·算法·leetcode·职场和发展