题解 | #两个链表的第一个公共结点#
两个链表的第一个公共结点
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 };