私は入力番号の倍数である要素を削除する必要があるこの関数を持っています。再帰でリストから要素を取り除くC++
0 28992848 28992816 28992784 28992752 28992720 28992688 28992656 28992624 28992592
どのように私はこの問題を解決することができます:私の印刷機能は私にこれを提供しますので、問題は、要素が削除されているということですが、nullではありませんが、0から10まで、リスト上でこれを実行する
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);
}
}
?
動作していないため、セグメント化エラーが発生します。 – slash89mf
最初に3つのノードを削除しようとしていなければなりません。そして、それを取得したら、それが10ノードで動作するかどうかを確認してください。このようにすれば、作業が容易になります。 – PaulMcKenzie
'std :: list'の' remove_if'メンバ関数で非常に簡単になるでしょう... –