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;
}

通过:

相关推荐
一 乐5 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
xkxnq8 小时前
第二阶段:Vue 组件化开发(第 16天)
前端·javascript·vue.js
Van_Moonlight8 小时前
RN for OpenHarmony 实战 TodoList 项目:空状态占位图
javascript·开源·harmonyos
xkxnq8 小时前
第一阶段:Vue 基础入门(第 15天)
前端·javascript·vue.js
️停云️8 小时前
【滑动窗口与双指针】不定长滑动窗口
c++·算法·leetcode·剪枝·哈希
BBBBBAAAAAi9 小时前
Claude Code安装记录
开发语言·前端·javascript
源码获取_wx:Fegn089510 小时前
基于 vue智慧养老院系统
开发语言·前端·javascript·vue.js·spring boot·后端·课程设计
Jing_Rainbow10 小时前
【 前端三剑客-37 /Lesson61(2025-12-09)】JavaScript 内存机制与执行原理详解🧠
前端·javascript·程序员
UIUV11 小时前
模块化CSS学习笔记:从作用域问题到实战解决方案
前端·javascript·react.js
Kakarotto11 小时前
使用ThreeJS绘制东方明珠塔模型
前端·javascript·vue.js