js一刷 哈希表
javascript
var getIntersectionNode = function(headA, headB) {
const idx=new Map();
let p1=headA;
while(p1){
idx.set(p1,1);
p1=p1.next;
}
let p2=headB;
while(p2){
if(idx.has(p2)) return p2;
p2=p2.next;
}
};
js 一刷 双指针
javascript
var getIntersectionNode = function(headA, headB) {
let p1=headA;
let p2=headB;
while(p1!=p2){
p1=p1?p1.next:headB;
p2=p2?p2.next:headA;
}
return p1;
};
第二种方法算法核心:遍历完第一个链表后遍历第二个链表,两个指针一定会同时到达相交点,如果没有相交点,一定会同时到达空结点