只需判断两个链表是否有共同结点。
如果两个链表的长度一致,取到头结点,然后只需挨个比较两个链表的结点,
如果两个链表的长度不一致,那么需要将长链表的指针取到(len1 -Len2)的位置后再比较
第一步:取两个链表的长度;
第二步:长链表减去短链表的长度N = (n1-n2);
第三部:长链表将指针指向第N个结点;
void IsLinkIntersect(const linkNode *head1, const linkNode *head2) { if (!head1 || !head2) { return NULL; } linkNode *p = head1, *q = head2; int n1 =0, n2 =0,num=0; bool intersect = false; while (p) { n1++; p=p->next; } while (q) { n2++; q=q->next; } if (n1>n2) { num = n1-n2 while (num >0) { p = p->next; } } if (n2>n1) { num = n2-n1; while(num >0) { q= q->next; } } while (p !=NULL && p!= q ) { p=p->next; q=q->next; } if (p != NULL) { intersect = true; } }