PtrToNode Suffix(List L1, List L2)
{
int len1 = 0, len2 = 0;
List head1 = L1->Next;
List head2 = L2->Next;
//求表1长度
while (head1)
{
len1++;
head1 = head1->Next;
}
//求表2长度
while (head2)
{
len2++;
head2 = head2->Next;
}
//回归real头结点
head1 = L1->Next;
head2 = L2->Next;
/*
情况一:两个表长度相同 那么直接遍历直到两个指针相等
情况二:如果两个表长度不同 需要进一步分析:
两个长度不同的表有交点 假定交点前 表1有x[较大]个结点 表2有y个结点
我们求出x比y多n个结点 先让表1先前走了这n个结点 这时 两个表距离交点个数相同
按情况一执行即可
*/
// 这两个while只会执行一个 /
while (len1 > len2)
{
len1--;
head1 = head1->Next;
}
while (len2 > len1)
{
len2--;
head2 = head2->Next;
}
/目的是///
while (head1 != head2)
{
head1 = head1->Next;
head2 = head2->Next;
}
return head1;
}
01-17
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交