题目描述:
两个循环单链表,链表头指针h1和h2,将链表h2链接到链表h1之后,要求链接后的链表仍保持循环链表形式。
算法思想:
<- <- <—r1|
h1->1->2->3-|
<- <- <—r2|
h2->4->5->6|
找到r1,r2后
r1->next=h2->next;
r2->next=h1;
核心代码:
void merge_h1_h2(LNode* &h1,LNode* &h2)
{
LNode *r1,*r2;
LNode *p1,*p2;
p1=h1->next;
p2=h2->next;
while(p1->next!=h1)
{
p1=p1->next;
}
r1=p1;
while(p2->next!=h2)
{
p2=p2->next;
}
r2=p2;
r1->next=h2->next;;//如果像答案说的只是把h2链接到h1后就是r1->next=h2
//但是这里我链接到了第一个数据结点,不然输出数据的时候会出问题
r2->next=h1;
}