/*
* 判断单链表L1 L2是否相交
* 1. 将L1链接成环。
* 2. 如果相交,从L2出发一定能够访问到L1.
*
* 还有一种很直观的算法,借助额外的存储空间。
*/
bool is_intersection(node *L1, node *L2)
{
if (!L1 || !L2)
return true;
node * h = L1;
/* 将L1链接成环 */
while (h->next)
{
h = h->next;
}
h->next = L1;
/* 从L2出发进行访问 */
h = L2;
while (h)
{
if (h == L1)
return true;
h = h->next;
}
return false;
}判断单链表L1 L2是否相交
本文介绍了一种判断两个单链表是否相交的算法。通过将其中一个链表构造成环状,从另一个链表出发遍历查看是否能到达构成环的链表起点。此外,还提到了一种使用额外存储空间的直观算法。

被折叠的 条评论
为什么被折叠?



