1.合并两个有序链表
struct node{
int data;
struct node* next;
};
node* merge(node*head,node *head1,node *head2)
{
node *temp=head;
while(head1!=NULL&&head2!=NULL){
if(head1->data<head2->data){
temp->next=head1;
temp=head1;
head1=head1->next;
}else{
temp->next=head2;
temp=head2;
head2=head2->next;
}
}
while(head1!=NULL){
temp->next=head1;
temp=head1;
head1=head1->next;
}
while(head2!=NULL){
temp->next=head2;
temp=head2;
head2=head2->next;
}
return temp;
}
2.合并两个有序数组
int merge(int* arr1,int len1,int* arr2,int len2,int *arr3){
int len=len1+len2-1;
int i=len1-1;
int j=len2-1;
while(i>=0&&j>=0){
if(arr1[i]>arr2[j]){
arr3[len--]=arr1[i--];
}else{
arr3[len--]=arr2[j--];
}
}
while(i>=0){
arr3[len--]=arr1[i--];
}
while(j>=0){
arr3[len--]=arr2[j--];
}
return 0;
}