У меня есть эта функция, которая должна удалять элементы, кратные номеру ввода.Удалить элементы из списка с рекурсией C++
ptr_lista rmv_mul(ptr_list p,int n){
if(p==NULL){
return(p);
}
if (p->val%n==0){
ptr_list tmp;
tmp = p->next;
delete(p);
rmv_mul(p->next,n);
return (p);
}
else{
rmv_mul(p->next,n);
return (p);
}
}
Выполнение этого в списке от 0 до 10, проблема состоит в том, что элементы будут удалены, но не нулевой, так что моя функция печати дает мне это:
0 28992848 28992816 28992784 28992752 28992720 28992688 28992656 28992624 28992592
Как я могу решить эту проблему ?
Не работает, я получаю ошибку сегментации. – slash89mf
Вы должны сначала попытаться удалить 3 узла, и когда вы получите эту работу, а затем посмотрите, работает ли она на 10 узлов. Таким образом, с ними становится легче работать. – PaulMcKenzie
Это было бы очень легко с помощью функции 'std :: list'' remove_if' ... –