方法
- 使用两个指针p1,p2,p1从链表1开始遍历,p2从链表2开始遍历。
- p1走完链表1时,从链表2继续遍历,p2先走完链表2,则从链表1继续遍历,也就是说,p1和p2都会把两个链表都遍历完,遍历中,如果节点相等时,就是公共节点了。
function FindFirstCommonNode(pHead1, pHead2)
{
if(!pHead1 || !pHead2) return null;
let p1 = pHead1;
let p2 = pHead2;
while(p1 != p2) {
p1= (p1===null ? pHead2 :p1.next);
p2= (p2===null ? pHead1 :p2.next);
}
return p1;
}