问题
设有两个链表,ha为单向链表,hb为单向循环链表。编写算法,将两个链表合并成一个单向链表,要求算法所需时间与链表长度无关。
分析
所需时间与链表长度无关,只有使用带尾指针的单循环单链表,将该序列插入单向链表第一元素之前即可。
代码
LinkList mergeList(LinkList &ha, LinkList &hb){
///ha单向链表,hb单向循环链表,hb指向尾结点
LNode *q = hb -> next;
hb -> next = ha -> next;
ha -> next = q -> next;
free(q);
}
源代码
http://123.206.59.223:8080/code/code/17.rar