Hello, I'm trying to do an exercise where I need to merge two linked lists. But my function is only returning a number only. The function is merge ();
insira o código aqui
#include <stdio.h>
#include <stdlib.h>
typedef struct LISTA{
int dado;
struct LISTA *prox;
} lista;
typedef struct LISTA2{
int dado;
struct LISTA2 *prox;
} lista2;
lista *insere(lista *p, int valor){
lista *novo;
novo=(lista*)malloc(sizeof(lista));
novo->dado = valor;
novo->prox = p;
return novo;
}
void imprime(lista *l){
lista *p = l;
for(p = l; p != NULL; p=p->prox){
printf("%d-",p->dado);
}
}
lista* intercala (lista* l, lista2* l2){
lista *li = (lista*)malloc(sizeof(lista));
lista *p1;
lista2 *p2;
for(p1 =l, p2 =l2; p1!= NULL && p2!=NULL; p1 =p1->prox, p2=p2->prox){
li->dado = p1->dado;
li->prox = p1->prox;
li->dado = p2->dado;
li->prox = p2->prox;
}
return li;
}
main(){
lista *l;
lista2 *l2;
l = NULL;
l2 = NULL;
l = insere(l, 1);
l = insere(l, 2);
l = insere(l, 3);
imprime(l);
printf("\n");
l2 = insere(l2, 4);
l2 = insere(l2, 5);
l2 = insere(l2, 6);
imprime(l2);
printf("\n");
//concatena(l,l2);
//imprime(l);
l =intercala (l,l2);
imprime(l);
}