это дополнительный вопрос, связанный с вопросом, который я задавал недавно. У меня есть следующий рекурсивный код, который даст мне наибольшее число из списка целых чисел
static int maximum (List<Integer> a)
{
if ((a.getTail().isEmpty()))
return 0;
else {
int n = maximum(a.getTail());
System.out.println(n);
if (a.getHead() > n) {
return (a.getHead());
} else {
return m;
}}
}
Это полезно. Но я действительно хочу иметь возможность возвращать логическое значение true или false в зависимости от того, где список увеличивается или уменьшается. Таким образом, мой метод стал бы:
static boolean maximum (List<Integer> a)
{
if ((a.getTail().isEmpty()))
return true;
else {
int n = maximum(a.getTail());
System.out.println(n);
if (a.getHead() > n) {
return true;
} else {
return false;
}}
}
Но это не будет работать. Проблема, с которой я столкнулся, состоит в том, что рекурсивный вызов, как я написал, возвращает целое число, чтобы я мог сравнить предыдущий максимум с текущим максимумом ----- if (a.getHead ()> m).
Что я хочу сделать, так это попытаться завершить оценку текущего стиха предыдущего максимума в рамках рекурсивного вызова, чтобы мне нужно было возвращать только логическое значение, истинное или ложное.
Так что для Например, если при рекурсии список постоянно увеличивается, то логическое значение остается истинным, но если в какой-то момент оно уменьшается, оно выдаст ложное значение:
1,2,3,4 = true
1,2,4,3 = false
Спасибо за вашу помощь. Я действительно борюсь со всей концепцией рекурсии .....