typedef struct Node
{
DataType data;
struct Node* next;
}Node,*pLinkList;
//求两条链表的第一个公共结点
Node* GetMeetNode(pLinkList plist1, pLinkList plist2)
{
int len1 = 0;
int len2 = 0;
int gap = 0;
Node* cur1 = plist1;
Node* cur2 = plist2;
//求链表1长度
while (cur1)
{
len1++;
cur1 = cur1->next;
}
//求链表2长度
while (cur2)
{
len2++;
cur2 = cur2->next;
}
//求差值
gap = abs(len1 - len2);
cur1 = plist1;//长
cur2 = plist2;//短
if (len1 < len2)
{
cur1 = plist2;
cur2 = plist1;
}
//较长链表先走gap步
while (gap--)
{
cur1 = cur1->next;
}
//两个指针一起走一起走
while (cur1!=cur2)
{
cur1 = cur1->next;
cur2 = cur2->next;
}
return cur1;
}
后续再进行补充