リンクされたリストでサイクルを検出するための私のコードは次のとおりです。
do
{
hare = hare.next();
if (hare == back) return;
hare = hare.next();
if (hare == back) return;
tortoise = tortoise.next();
}
while (tortoise != hare);
throw new AssertionError("cyclic linkage");
ループ内のコードの重複を取り除く方法はありますか?
カメを一歩前に出させた後は、チェックは必要ないと思いますか? 私が見ているように、カメはウサギの前にリストの最後に到達することはできません (寓話に反して)。
このコードを簡素化/美化する他の方法はありますか?