Qualcomm Interview Question
Software Engineer / Developersbool listMerge(List* list1,List* list2)
{
if(!list1) return 0;
if(!list2) return 0;
int len1=1;
int len2=1;
List* lista=list1;
List* listb=list2;
while(lista->next)
len1++;
while(listb->next)
len2++;
lista=list1;
listb=list2;
int diff=abs(len1-len2);
if(len1>len2)
{
while(diff-->0)
lista=lista->next;
}
else
{
while(diff-->0)
listb=listb->next;
}
while(lista&&listb)
{
if((lista->value==listb->value)&&(lista->next==listb->next))
return 1;
else
{
lista=lista->next;
listb=listb->next;
}
}
return 0;
}
Algorithm:
- krishna September 09, 20081. Traverse both list till the last get lengths L1,L2
2. if(L1 > L2 )
Traverse List L1 untill L1-L2
else
the other way
3. Start traversing both lists from then & compare both nodes.