合并后的链表位于headA链表中
void merge(Node &headA, Node headB)
{
Node *p = &headA;
Node *q = headB.next;
while(p->next != NULL && q != NULL)
{
if (p->next->data >= q->data)
{
headB.next = q->next; //将结点从headB中移出
q->next = p->next; //移出的结点插入到p之后
p->next = q;
p = p->next; //p指向移入的结点
q = headB.next; //q继续指向headB链表中的第一个结点
} else { //如果p的下一个结点的值比q的值小则p指针后移
p = p->next;
}
}
if (p->next == NULL) //若q中还有结点未移入headA中,则将后面的全部移入headA
{
p->next = q;
}
}