-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path160.js
More file actions
39 lines (33 loc) · 838 Bytes
/
160.js
File metadata and controls
39 lines (33 loc) · 838 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
* 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 === null || headB === null) return null;
let lengthA = 0;
let tempA = headA;
while(tempA) { ++lengthA; tempA = tempA.next; }
let lengthB = 0;
let tempB = headB;
while(tempB) { ++lengthB; tempB = tempB.next; }
if (lengthA > lengthB) {
let delta = lengthA - lengthB;
while(delta > 0) { headA = headA.next; --delta; }
} else {
let delta = lengthB - lengthA;
while(delta > 0) { headB = headB.next; --delta; }
}
while(headA !== null && headA !== headB) {
headA = headA.next;
headB = headB.next;
}
return headA;
};