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

通过:

相关推荐
独立开阀者_FwtCoder36 分钟前
【Augment】 Augment技巧之 Rewrite Prompt(重写提示) 有神奇的魔法
前端·javascript·github
我想说一句1 小时前
事件机制与委托:从冒泡捕获到高效编程的奇妙之旅
前端·javascript
汤姆Tom1 小时前
JavaScript reduce()函数详解
javascript
小飞悟1 小时前
你以为 React 的事件很简单?错了,它暗藏玄机!
前端·javascript·面试
中微子1 小时前
JavaScript 事件机制:捕获、冒泡与事件委托详解
前端·javascript
蓝翔认证10级掘手1 小时前
🤯 家人们谁懂啊!我的摸鱼脚本它...它成精了!🚀
javascript
前端康师傅2 小时前
JavaScript 中你不知道的按位运算
前端·javascript
tianchang2 小时前
策略模式(Strategy Pattern)深入解析与实战应用
前端·javascript·代码规范
best6662 小时前
JavaScript的Math内置对象,到底是何方神圣?
javascript
掘金安东尼2 小时前
技术解析:高级 Excel 财务报表解析器的架构与实现
前端·javascript·面试