| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -12,21 +12,41 @@ | |||
| 12 | 12 | * @return {ListNode} | |
| 13 | 13 | */ | |
| 14 | 14 | var getIntersectionNode = function(headA, headB) { | |
| 15 | - var hashmap = []; | ||
| 16 | - var ret = null; | ||
| 17 | - while(headA) { | ||
| 18 | - hashmap.push(headA.val); | ||
| 19 | - headA = headA.next; | ||
| 15 | + var lenA = 0, lenB = 0; | ||
| 16 | + var pa = headA; | ||
| 17 | + var pb = headB; | ||
| 18 | + while(pa) { | ||
| 19 | + lenA++; | ||
| 20 | + pa = pa.next; | ||
| 20 | 21 | } | |
| 21 | 22 | ||
| 22 | - while(headB) { | ||
| 23 | - if(hashmap.includes(headB.val)) { | ||
| 24 | - ret = headB; | ||
| 25 | - break; | ||
| 26 | - } else { | ||
| 27 | - headB = headB.next; | ||
| 23 | + while(pb) { | ||
| 24 | + lenB++; | ||
| 25 | + pb = pb.next; | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + if(lenA >= lenB) { | ||
| 29 | + var diff = lenA - lenB; | ||
| 30 | + pa = headA; | ||
| 31 | + pb = headB; | ||
| 32 | + while(diff) { | ||
| 33 | + pa = pa.next; | ||
| 34 | + diff--; | ||
| 35 | + } | ||
| 36 | + } else { | ||
| 37 | + var diff2 = lenB - lenA; | ||
| 38 | + pa = headA; | ||
| 39 | + pb = headB; | ||
| 40 | + while(diff2) { | ||
| 41 | + pb = pb.next; | ||
| 42 | + diff2--; | ||
| 28 | 43 | } | |
| 29 | 44 | } | |
| 30 | 45 | ||
| 31 | - return ret; | ||
| 46 | + while(pa !== pb) { | ||
| 47 | + pa = pa.next; | ||
| 48 | + pb = pb.next; | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + return pa; | ||
| 32 | 52 | }; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments