若要在O (1)的时间复杂度上实现两个循环链表头尾相接,则对应两个循环链表各设置一个指针,分别指向( )。
【正确答案】 B
【答案解析】解析:两个循环链表头尾相接,需要改变头结点和尾结点之间的指针,而这个指针是从尾结点指向头结点的,所以只有将两个指针分别指向自己循环链表的尾结点才能完成操作。实现的代码如下: void connect (LNode *A,LNode *&B)// 假设A、B为非空带头结点的循环链表的尾指针 { LNode *p=A—>next; //保存A表的头结点 A—>next=B—>next—>next; //B的开始结点链接到A表尾 free(B—>next); //释放B表的头结点 B—>next=p; //将B表的尾结点链接到A表的头结点 }