LinkList Search_Common(LinkList L1,LinkList L2)
{
int len1=Length(L1),len2=Length(L2);
LinkList longList,shortList;
if(len1>len2)
{
longList=L1->next;
shortlist=L2->next;
dist=len1-len2;
}
else
{
longList=L2->next;
shortList=L2->next;
dist=len2-len1;
}
while(dist--)
longList=longList->next;
while(longList!=NULL)
{
if(longList==shortList)
return longList;
else
{
longList=longList->next;
shortList=shortList->next;
}
}
return NULL;
}
两个链表从第一个结点开始后序结点皆相同,所以链表在刚开始长度差值dist内的几个结点肯定不是共同结点,等剩余长度相同,就可以同时向下遍历进行比较了