node* newlist; node* deleted; while(newlist->next != NULL){ newlist = *pList; *pList = newlist->next; free(newlist); newlist = NULL; } if(newlist->next == NULL){ deleted = newlist->next; free(deleted); deleted = NULL; }