100 個のノードを持つ単一リンク リストがあります。このリンクされたリストの循環を確認する必要がありますか?
これは、リストをトラバースすることで実現でき、最後のノード リンク フィールドが head に等しいことを確認する必要があります。
struct node *temp1, *temp2;
while(i != 100) {
temp2 = temp1->link;
if(temp2==head) {
printf("circular");
break;
else
temp1=temp1->link;
i++;
}
このメソッドは、最大 100 回の繰り返しが必要です。これを半分に減らしたいのですが、これを達成するには50回の反復が必要です。
これを行うことは可能ですか?はいの場合、どうすればこれを行うことができますか?