Error in the program


sir can you check my program I am getting a error

image
why are u just incrementing p1 pointer… u would have to do accordingly… if l1 > l2 move p1 ahead… else if l2 > l2 move p2 ahead…

Node *intersectionOfTwoLinkedLists(Node *head1, Node *head2)
{

int len1 = 0,len2 = 0;
Node* temp1 = head1;
Node* temp2 = head2;

while(temp1!=NULL){
    len1++;
    temp1 = temp1->next;
}

while(temp2!=NULL){
    len2++;
    temp2 = temp2->next;
}

temp1 = head1;
if(len1>len2){
    int rem = len1-len2;
    while(rem--){
        temp1 = temp1->next;
    }
}

temp2 = head2;
if(len2>len1){
    int rem = len2-len1;
    while(rem--){
        temp2 = temp2->next;
    }
}

while(temp1!=NULL && temp2!=NULL){
    if(temp1 == temp2){
        return temp1;
    }
    temp1 = temp1->next;
    temp2 = temp2->next;
}
return NULL;

}

refer this…

do u still have any doubt?? or shall i mark this doubt as resolved??