void Mergelist( vector<ListNode*> &lists, ListNode* &lastnode){
     int min=-1, val=INT_MAX;
     for( int i=0; i<lists.size(); i++){
         if( lists[i] ==NULL )
             continue;
         if( lists[i]->val <val){
             val=lists[i]->val;
             min=i;
         }
     }
     
     if( min==-1 )
         return ;
     if( lastnode ==NULL ){
         lastnode=lists[min];
         lists[min]=lists[min]->next;
         Mergelist(lists,lastnode);
     }
     else{
         lastnode->next=lists[min];  
         lists[min]=lists[min]->next;
         Mergelist(lists,lastnode->next);
     }
     
 }
int main(){
	Sqlist La,Lb,Lc;
	int i=1;
	ElemType num = 0;

	Initlist(&La);
	Initlist(&Lb);
	
	printf("plsase input LIST A,-1 to end\n");
	while(1){
		scanf("%d",&num);
		if(num == -1)
			break;
		Insertlist(&La,i,num);
		i++;
	}
	Showlist(&La);

	i = 1;
	printf("please input LIST B,-1 to end\n");
	while(1){
		scanf("%d",&num);
		if(num == -1)
			break;
		Insertlist(&Lb,i,num);
		i++;
	}
	Showlist(&Lb);

	Mergelist(La,Lb,&Lc);
	printf("MERGE DONE!\n");
	Showlist(&Lc);
	return 0;
}
 ListNode *mergeKLists(vector<ListNode *> &lists) {
     // Start typing your C/C++ solution below
     // DO NOT write int main() function
     ListNode* head=NULL;
     if(lists.size() ==0)
         return head;
     Mergelist(lists, head);
     return head;
     
 }
Example #4
0
int main(){
	Sqlist La,Lb,Lc;
	int i=1;
//	ElemType num = 0;
	ElemType num = '0';		//if it misunderstand you,rename it char

	Initlist(&La);
	Initlist(&Lb);
	
	printf("plsase input LIST A,q to end\n");
	while(1){
		scanf("%c",&num);
		if(num == 'q' ||num =='Q')
			break;
		Insertlist(&La,i,num);
		i++;
	}
//	Sortlist(&La);
	Showlist(&La);

	i = 1;
	printf("please input LIST B,q to end\n");
	while(1){
//		scanf("%d",&num);
		scanf("%c",&num);
		if(num == 'q' ||num =='Q')
			break;
		Insertlist(&Lb,i,num);
		i++;
	}
//	Sortlist(&Lb);
	Showlist(&Lb);
/*
	printf("IS THERE any element you want to delete from list b,enter the positon,0 means no action\n");
	int n;
	scanf("%d",&n);
	if(n=0)
		return 0;
	else
		Deletelist(&Lb,n);
	Showlist(&Lb);
*/

	Mergelist(La,Lb,&Lc);
//	printf("MERGE DONE!\n");
//	Showlist(&Lc);
	return 0;
}