Untitled
unknown
c_cpp
2 months ago
791 B
3
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