let intersection = { val:3, next:{ val:4, next:{ val:5, next:null } } } let linkListA = { val:1, next:{ val:2, next:intersection } } let linkListB= { val:-1, next:{ val:-2, next:{ val:1, next:{ val:2, next:intersection } } } } function intersectionLinkList(l1 = linkListA,l2 = linkListB){ let weakMap = new WeakMap() let l1_next = l1.next,l2_next = l2.next while(l1_next != null){ if(!weakMap.has(l1_next)){ weakMap.set(l1_next,l1_next) } l1_next = l1_next.next } while(l2_next != null){ if(weakMap.has(l2_next)){ return weakMap.get(l2_next) } l2_next = l2_next.next } }