题解 | #两个链表的第一个公共结点#
两个链表的第一个公共结点
https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46
/*function ListNode(x){
this.val = x;
this.next = null;
}*/
function FindFirstCommonNode(pHead1, pHead2)
{
// write code here
let sum1 = 0
let sum2 = 0
let p1 = pHead1
while(p1) {
sum1 ++
p1 = p1.next
}
let p2 = pHead2
while(p2) {
sum2 ++
p2 = p2.next
}
let diff = Math.abs(sum1 - sum2)
let longer = sum1 >= sum2 ? pHead1 : pHead2
let shorter = sum1 >= sum2 ? pHead2 : pHead1
while(diff >0) {
longer = longer.next
diff--
}
while (longer && shorter) {
if(longer === shorter) {
return longer
}
longer = longer.next
shorter = shorter.next
}
return null
}
module.exports = {
FindFirstCommonNode : FindFirstCommonNode
};
