已知指针ha和hb分别是两个单链表的头指针,下列算法将这两个链表首尾相连在一起,并形成一个循环链表(即ha的最后一个结点链接hb的第一个结点,hb的最后一个结点指向ha),返回ha作为该循环链表的头指针。请将该算法补充完整。
时间: 2023-03-16 10:49:26 浏览: 451
算法如下:
1. 如果ha或hb为空,则返回ha。
2. 定义两个指针p和q,分别指向ha和hb的最后一个结点。
3. 将p的next指向hb的第一个结点,将q的next指向ha。
4. 返回ha作为循环链表的头指针。
完整代码如下:
Node* connect(Node* ha, Node* hb) {
if (ha == NULL || hb == NULL) {
return ha;
}
Node* p = ha;
while (p->next != NULL) {
p = p->next;
}
Node* q = hb;
while (q->next != NULL) {
q = q->next;
}
p->next = hb;
q->next = ha;
return ha;
}
阅读全文