剑指Offer——两个链表的第一个公共节点(JS实现) |刷题打卡

简介: 剑指Offer——两个链表的第一个公共节点(JS实现) |刷题打卡

前言

掘金团队号上线,助你 Offer 临门! 点击 查看详情

题目描述

image.png

解题思路

  • 首先遍历两个链表。
  • 在遍历的时候,使用临时节点去遍历,而不要使用系统给的头节点,因为如果使用系统给的头节点,遍历到最后,不好找到头节点,但是系统却要我们返回头节点。
  • 使用两个集合分别用来存储每一个链表。
  • 然后遍历其中一个链表的元素,如果该元素同时出现在第二个链表中,将该元素返回即可。

解题代码

var getIntersectionNode = function(headA, headB) {
    let nodeA = headA;
    let nodeB = headB;
    const setA = new Set();
    const setB = new Set();
    while (nodeA) {
        setA.add(nodeA);
        nodeA = nodeA.next;
    }
    while (nodeB) {
        setB.add(nodeB);
        nodeB = nodeB.next;
    }
    for (let v of setA) {
        if (setB.has(v)) {
            return v;
        }
    }
};

总结

  • 本题属于较为简单的循环遍历即可解决的问题。
  • 本题的关键在于判断一个元素是否在另一个链表中,所以可以通过循环+集合的方式来解决。
相关文章
|
JavaScript 前端开发 索引
JavaScript HTML DOM 节点列表
JavaScript HTML DOM 节点列表
133 5
|
JavaScript 前端开发
JavaScript HTML DOM 元素 (节点)
JavaScript HTML DOM 元素 (节点)
104 2
|
JavaScript
js 解析和操作树 —— 获取树的深度、提取并统计树的所有的节点和叶子节点、添加节点、修改节点、删除节点
js 解析和操作树 —— 获取树的深度、提取并统计树的所有的节点和叶子节点、添加节点、修改节点、删除节点
439 0
|
JavaScript BI
技术笔记:JS获取子节点、父节点和兄弟节点的方法实例总结
技术笔记:JS获取子节点、父节点和兄弟节点的方法实例总结
489 0
|
JavaScript 前端开发
JS中访问节点和创建节点的方法都有什么?
JS中访问节点和创建节点的方法都有什么?
171 0
|
存储 算法 JavaScript
JavaScript 数据结构与算法 之 链表
JavaScript 数据结构与算法 之 链表
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
290 2
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
223 1
JavaScript中的原型 保姆级文章一文搞懂