removeValue( int value, Cell *p ) { // この関数の定義がわからない if( head -> data == value ){ Cell *removed = head; head = head -> next; delete removed; } if( ( p -> next ) -> next == NULL ) return head; else if( ( p -> next ) -> data == value ){ Cell *removed = p -> next; p -> next = ( p -> next ) -> next; delete removed; } if( p -> next == NULL ) return head; return removeValue( value, p -> next ); } void List::print( ) { cout << "リストの内容: "; for( Cell *p = head; p != NULL ; p = p->next ) { cout << p->data << " "; } cout << endl; }
removeValue()の引数に指定したデータを全て削除する関数を作りたいのですが、セグメンテーションえらーが出ます。
原因部分がわかりません。
どこをどう直せばいいのでしょうか?
再帰を使って定義することが条件の下です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/01 11:08
2016/11/01 11:12
2016/11/01 11:15
2016/11/01 11:19