| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | 
							- 'use strict'
 
- /**
 
-  * Definition for singly-linked list.
 
-  * function ListNode(val) {
 
-  *     this.val = val;
 
-  *     this.next = null;
 
-  * }
 
-  */
 
- function ListNode(val) {
 
-     this.val = val
 
-     this.next = null
 
- }
 
- /**
 
-  * @param {ListNode} headA
 
-  * @param {ListNode} headB
 
-  * @return {ListNode}
 
-  */
 
- var getIntersectionNode = function (headA, headB) {
 
-     let set = new Set()
 
-     let pA = headA,
 
-         pB = headB
 
-     while (pA !== null && pB != null) {
 
-         if (set.has(pA)) return pA
 
-         set.add(pA)
 
-         if (set.has(pB)) return pB
 
-         set.add(pB)
 
-         pA = pA.next
 
-         pB = pB.next
 
-     }
 
-     if (pA === pB) return null
 
-     let curr = null
 
-     if (pA === null) {
 
-         curr = pB
 
-     } else {
 
-         curr = pA
 
-     }
 
-     while (curr !== null) {
 
-         if (set.has(curr)) return curr
 
-         set.add(curr)
 
-         curr = curr.next
 
-     }
 
-     return null
 
- }
 
- function __main__() {
 
-     let n2 = new ListNode(2)
 
-     let n22 = new ListNode(3)
 
-     let n23 = new ListNode(3)
 
-     let n24 = new ListNode(3)
 
-     n2.next = n22
 
-     n22.next = n23
 
-     n23.next = n24
 
-     let n1 = new ListNode(3)
 
-     let n12 = new ListNode(3)
 
-     let n13 = new ListNode(3)
 
-     n1.next = n12
 
-     n12.next = n13
 
-     n24.next = n12
 
-     let n3 = new ListNode(3)
 
-     /*eslint no-console: ["error", { allow: ["log"] }] */
 
-     console.log(getIntersectionNode(n1, n2))
 
-     console.log(getIntersectionNode(n2, n3))
 
- }
 
- __main__()
 
 
  |