给定两个单链表,统计这两个单链表中有几个节点的值是相同的,输出这些相同的值。用js实现
时间: 2024-02-10 07:10:55 浏览: 77
好的,下面是用 JavaScript 实现的代码:
```javascript
class ListNode {
constructor(val, next = null) {
this.val = val;
this.next = next;
}
}
function getIntersection(headA, headB) {
const set = new Set();
let currA = headA,
currB = headB;
while (currA) {
set.add(currA.val);
currA = currA.next;
}
const res = [];
while (currB) {
if (set.has(currB.val)) {
res.push(currB.val);
}
currB = currB.next;
}
return res;
}
```
这个算法的思路比较简单,就是使用哈希表来记录第一个链表中的结点值,然后遍历第二个链表,如果当前结点的值在哈希表中出现过,则把它加入到结果数组中。
具体实现过程如下:
1. 创建一个哈希表 `set`,遍历第一个链表,把链表中的结点值添加到哈希表中。
2. 遍历第二个链表,判断当前结点的值是否在哈希表中出现过,如果出现过,则把它加入到结果数组 `res` 中。
3. 返回结果数组 `res`。
希望这个算法可以帮助到您。
阅读全文