#include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef struct node {int data;struct node *next; }list; struct node *create(int n) { list *p,*head,*tail;head = (list *)malloc(sizeof(list));head->next = NULL;tail = head;for(int i=0;i<n;i++){p = (list *)malloc(sizeof(list));p->next = NULL;scanf("%d",&p->data);tail->next = p;tail = p;}return head; } void display(list *head) {list *p;p = head->next;while(p){if(p->next!=NULL){printf("%d ",p->data);}else{printf("%d\n",p->data);}p=p->next;} } struct node *merge(list *head1,list *head2) {list *p1=head1->next,*p2=head2->next,*tail;head1->next=NULL;tail=head1;while(p1 && p2){if(p1->data<p2->data){tail->next = p1;tail = p1;p1=p1->next;tail->next = NULL;}else{tail->next = p2;tail = p2; p2 = p2->next;tail->next = NULL;}}if(p1){tail->next = p1;}else{tail->next = p2;}return head1; } int main() {list *p,*head2,*head1;int n,m;scanf("%d%d",&m,&n); head1 = create(m);head2 = create(n);head1 = merge(head1,head2);display(head1);return 0; }
转载于:https://www.cnblogs.com/CCCrunner/p/6444609.html
相关资源:JAVA上百实例源码以及开源项目