与えられたデータに基づいてノードを削除し、同じ時間を追加する必要がある関数を実装しています。リンクされたリストがNULLポインタに達するまでこの操作を実行します。ノードを削除するために使用する関数でリンクリストがC++で空であるかどうかを確認するには
同時に、自分のリストが空で、他のメッセージが印刷されているかどうかをテストし、上記の処理が実行されないようにする必要があります。
void del(Node*&p, int k)
{
if(ptr!=NULL)
{
if(ptr->data==k)
{
cout<<"Random Data"<<endl;
Node*temp;
temp=p;
p=p->next;
delete temp;
}
else
del(p->next,k)
}
}
再帰なしで同じ方法を実装する方法はありますか?
私の悪い私は、おかげで –
あなたが達成しようとしているものを明確にすることができ、編集を行って、実現しませんでしたか?あなたは単にリンクのリストからノードの一部である変数kを持つノードを再帰的に削除したいと思うようです。私はptrと何も関係がないptrとp(あなたはpを削除する)がなぜあるのか分かりません。そして「同じ時間を加える」とはどういう意味ですか? – Carlos
これは私が実装している基本的なロジックです。この関数を呼び出すと、リンクされたリストが空であるかどうかを最初にテストしたい場合は、それを印刷して他の部分を実行しないようにします。私はそれを実装する方法はありますか? –