Intersection of Two Linked Lists Posted on 2018-10-02 Descriptionhttps://leetcode.com/problems/intersection-of-two-linked-lists/description/ Solution1234567891011121314151617181920212223242526272829303132333435363738394041424344/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { if (headA == NULL || headB == NULL) return NULL; int lengthA = 0; int lengthB = 0; ListNode* traverseA = headA; ListNode* traverseB = headB; while(traverseA != NULL) { traverseA = traverseA->next; lengthA += 1; } while(traverseB != NULL) { traverseB = traverseB->next; lengthB += 1; } if (lengthA > lengthB) { int gap = lengthA - lengthB; while(gap > 0) { headA = headA->next; gap -= 1; } }else { int gap = lengthB - lengthA; while(gap > 0) { headB = headB->next; gap -= 1; } } while(headA != NULL && headB != NULL && headA != headB) { headA = headA->next; headB = headB->next; } return headA; }};