Заставьте check()
работать с копией каждого массива.
Один из способов - использовать Arrays.copy()
для передачи копии к методу:
if (check(treenum, Arrays.copyOf(a, a.length), Arrays.copyOf(b, b.length), Arrays.copyOf(c, c.length), Arrays.copyOf(d, d.length)))
или сделать копии внутри check()
.
Вы можете сделать код более читабельным, создав вспомогательный метод:
private static int[] copy(int[] original) {
return Arrays.copyOf(original, original.length);
}
затем вместо:
if (check(treenum, copy(a), copy(b), copy(c), copy(d)))
Обратите внимание также на удаление избыточного == true
из условия if
.