题解 | #两个链表的第一个公共结点#
两个链表的第一个公共结点
https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function FindFirstCommonNode(pHead1, pHead2)
{
// write code here
if (pHead1 === null || pHead2 === null) return null
let current1 = pHead1
let current2 = pHead2
if (current1 === current2) return current1
let hasCheckP1 = false
let hasCheckP2 = false
while (current1 !== current2) {
if (current1.next) {
current1 = current1.next
} else {
if (hasCheckP2) return null
current1 = pHead2
hasCheckP2 = true
}
if (current2.next) {
current2 = current2.next
} else {
if (hasCheckP1) return null
current2 = pHead1
hasCheckP1 = true
}
}
return current1
}
module.exports = {
FindFirstCommonNode : FindFirstCommonNode
};
