ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
int a = 0;
ListNode* pa = headA;
while(pa)
{
a++;
pa = pa->next;
}
int b = 0;
ListNode* pb = headB;
while(pb)
{
b++;
pb = pb->next;
}
if(a > b)
{
int n = a - b;
while(n && headA)
{
n--;
headA = headA->next;
}
}
else if(a < b)
{
int n = b - a;
while(n && headB)
{
n--;
headB = headB->next;
}
}
while(headA && headB){
if (headA == headB){
return headA;
}
headA = headA->next;
headB = headB->next;
}
return NULL;
}