私はFindというメソッドを持っています。これは、ユーザーが要素の値を入力すると、* nptという新しいノードにアドレスが保存されます。前のノードのアドレスを使用してノードを削除する
引数として* nptを使用すると、nptに保存された値の後の値を削除するdeleteメソッドを作成することになっています。
たとえば、これが私のリストの場合: 134、564、674、253、および検索で674を入力すると、253が削除されます。
void LinkedList::Delete(Node *PrePosition){
Node *temp = PrePosition -> next;
PrePosition->next = PrePosition->next->next;
delete temp;
}
しかしこれに伴う問題、現在ヘッドノードを削除する方法がないということである。
現在、これは削除機能のための私のコードです。私が与えられた唯一のヒントは、これは本当に助けになりません: リストの先頭を削除する場合は、PrePositionはNULLです。
おそらく 'LinkedList'クラスは、リストの先頭を結ぶ' head'呼ば 'ノード*'ポインタを持っています。したがって、あなたの引数に 'NULL'を取得した場合は、先頭のポインタを使って同じコードを実行してください。 –
これはおそらく私の部分で信じられないほど馬鹿に聞こえるでしょうが、Findメソッドはintを必要とします。どのように引数をNULLに設定することが可能でしょうか? – Bob
@Bobあなたのコードが許せば '-1'を返すことができます。 –