如何将两个链表合并且以升序排列成一个链表?
首先将第一个链表排序,然后将第二个链表的结点插入到第一个链表中。
首先将第一个链表排序,然后将第二个链表的结点插入到第一个链表中。
我有个,不过是先确保两个链表已经是有序情况下才可以做,楼主也可以先用排序将链表排好序,再调用这个函数.
nodelink link_head12(nodelink head1,nodelink head2)/*让head1和head2的数合并*/
{
nodelink p,r,head3;
head3=(nodelink)malloc(sizeof(node));/*建head3表*/
head3->next=NULL;
r=head3;
while(head1->next&&head2->next)
{
if(head1->next->info<head2->next->info)
{
p=head1->next;
head1->next=p->next;
p->next=NULL;
r->next=p;
r=r->next;
}
else
{
p=head2->next;
head2->next=p->next;
p->next=NULL;
r->next=p;
r=r->next;
}
}
if(head1->next!=NULL)
{
r->next=head1->next;
}
else if(head2->next!=NULL)
{
r->next=head2->next;
}
else
{
r->next=NULL;
}
return head3;
}