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

通过:

相关推荐
小安同学iter2 小时前
SQL50+Hot100系列(11.7)
java·算法·leetcode·hot100·sql50
yivifu2 小时前
JavaScript Selection API详解
java·前端·javascript
这儿有一堆花2 小时前
告别 Class 组件:拥抱 React Hooks 带来的函数式新范式
前端·javascript·react.js
Zyx20074 小时前
深拷贝:JavaScript 中对象复制的终极解法
javascript
谈笑也风生4 小时前
只出现一次的数字 II(一)
数据结构·算法·leetcode
开发者小天4 小时前
React中的componentWillUnmount 使用
前端·javascript·vue.js·react.js
sunly_4 小时前
Flutter:视频预览功能
javascript·flutter·音视频
aloha_7895 小时前
测试开发工程师面经准备(sxf)
java·python·leetcode·压力测试
im_AMBER5 小时前
Leetcode 47
数据结构·c++·笔记·学习·算法·leetcode
杰克尼5 小时前
vue_day04
前端·javascript·vue.js