Untitled
unknown
c_cpp
10 months ago
791 B
7
Indexable
typedef struct nodo_{
int num;
struct nodo_ *next;
} nodo_t;
nodo_t* duplica(nodo_t* corrente){
nodo_t *nuovo=(nodo_t*)malloc(sizeof(nodo_t));
if(nuovo==NULL){
return NULL;
}
nuovo->num=corrente->num;
nuovo->next=corrente->next;
corrente->next=nuovo;
return nuovo;
}
nodo_t* rimuovinodo(nodo_t* curr, nodo_t* prec){
if(curr==NULL){
return NULL;
}
if(prec==NULL){
curr=curr->next;
free(curr);
return curr;
}else{
prec->next=curr->next;
free(curr);
return prec->next;
}
}
nodo_t* manipolalista(nodo_t* l1){
nodo_t* curr=l1;
nodo_t* prec=NULL;
while(curr){
if(curr->num%2==0){
curr=duplica(curr);
curr=curr->next;
}else if(curr->num<0){
curr=rimuovinodo(curr, prec);
}
prec=curr;
curr=curr->next;
}
return l1;
}Editor is loading...
Leave a Comment