这里的两个链表,均为两个有序链表,需要引入三个指针,p1 p2 分别指向两个已知链表的头结点,先找两个头结点中较小的一位,把它的值赋给第三个链表的头结点,之后再依次将p1 p2移动,依次将小的数插入到链表3后,就完成两个链表的有序化合并。(最后要返回链表3,否则主函数中无法输出链表3)
注意:函数返回值为linklist类型
linklist merge(linklist head1,linklist head2){
linklist head3;
creatwei(head1);
creatwei(head2);
linklist p1 = head1->next ;
linklist p2 = head2->next ;
linklist p3;
if (p1->data < p2->data ){
head3 = p1;
p1 = p1->next ;
}
else{
head3 = p2;
p2 = p2->next ;
}
p3 = head3;
while(p1&&p2){
if (p1->data <= p2->data ){
p3->next = p1;
p3 = p1;
p1 = p1->next ;
}
else{
p3->next = p2;
p3 = p2;
p2 = p2->next ;
}
}
if(p1!=NULL){
p3->next = p1;
}
else{
p3->next = p2;
}
return head3;
}