/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} headA
* @param {ListNode} headB
* @return {ListNode}
*/
var getIntersectionNode = function(headA, headB) {
// 无节点,则不会相交
if (!headA || !headB) return null;
let u = headA, v = headB;
// 比较每个节点,终止条件为:存在相交节点 或 两条不相交遍历到末尾 null
while (u !== v) {
// 如果 u 遍历到末尾,则将其指向 v
u = u === null ? headB : u.next;
// 如果 v 遍历到末尾,则将其指向 u
v = v === null ? headA : v.next;
}
// 返回相交节点 或 最终指向的 null
return u;
}