2つの指定されたリンクリストに同じデータが含まれているかどうかを確認する必要があります。この場合の順序は重要ではありません。つまり、{1,3,2}
と{2,1,3}
は同じです。counter=0
新しい変数を導入して、次の手順を実行する必要があると思います。
while(node1->next!=NULL)
{
int value=node1->value;
if(contains(node2,value)){
counter++;
}
node1=node1->next;
if(counter== number of elements in node 1)
return true;
else return false;
}
もう1つの方法は、両方のリストを並べ替えて、ノードごとに比較することです。どちらが最適ですか?最初のケースではO(n ^ 2)操作が必要ですが、2番目のケースではNlog(N)+ O(N)のようになります(マージソートを使用する場合)。私は自分の考えで正しいですか?または、別の最適な方法はありますか?