将两个循环单链表连接成一个循环链表
问题描述:
有两个循环单链表,链表头指针分别为h1和h2,编写一个函数将链表h2链接到链表h1之后,要求链接后的链表仍保持循环链表形式。问题解答:
算法思想:先找到两个链表的尾指针,将第一个链表的尾指针与第二个链表的头结点链接起来,再使之成为循环的。LinkList Link(LinkList &h1,LinkList &h2){ //将循环链表h2链接到循环链表h1之后,使之仍保持循环链表的形式 LNode *p, *q; //分别指向两个链表的尾结点 p=h1; while (p->next!=h1) //寻找 h1 的尾结点 p=p->next; q=h2; while (q->next!=h2) //寻找 h2 的尾结点 q=q->next; p->next=h2; //将h2链接到h1之后 q->next=h1; //令h2的尾结点指向h1 return h1; }