编写一个程序,找到两个单链表相交的起始节点。
/**
* 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) {
let lenA = getLen(headA);
let lenB = getLen(headB);
while(lenA > lenB) {
lenA--;
headA = headA.next;
}
while(lenA < lenB) {
lenB--;
headB = headB.next;
}
while(headA && headB) {
if(headA === headB) {
return headA;
}
headA = headA.next;
headB = headB.next;
}
return null;
function getLen(node) {
let len = 0;
while(node) {
len++;
node = node.next;
}
return len;
}
};