voidMerge(LinkList &A, LinkList &B){// 检查链表 A 和链表 B 是否为空,如果其中之一为空,则直接返回if(A ==NULL|| B ==NULL)return;// 初始化指针,pa指向链表A的第一个节点,pb指向链表B的第一个节点
LNode *pa = A->next;
LNode *pb = B->next;
LNode *r;// 用于保存下一个节点
A->next =NULL;// 将链表 A 的头节点的 next 指针置为 NULL,表示新的链表开始
LNode *pre = A;// 指向链表 A 的头节点,用于插入节点// 遍历链表 A 和链表 Bwhile(pa && pb){if(pa->data < pb->data){
r = pa->next;//防止断链
pa->next = pre->next;
pre = pa;
pa = r;}else{
r = pb->next;//防止断链
pb->next = pre->next;
pre = pb;
pb = r;}}// 将链表 A 或链表 B 中剩余的节点插入到链表 A 的尾部while(pa){
r = pa->next;
pa->next = pre->next;
pre = pa;
pa = r;}while(pb){
r = pb->next;
pb->next = pre->next;
pre = pb;
pb = r;}// 释放链表 B 的内存,注意这里应该释放整个链表 B 的内存free(B);}