Я пытаюсь найти «максимальное» значение в связанном списке рекурсивно, используя вспомогательную функцию. Я только начинаю узнавать об этом в своем классе и очень растерялся. У нас есть собственный класс, который определяет тип Node, и еще одна функция для расчета размера Node или связного списка. Я решил эту проблему, когда сравнивал целые числа, но с символами я потерян. Вот мой код: '' '
static class Node {
public Node (char item, Node next) { this.item = item; this.next = next; }
public char item;
public Node next;
}
Node first; // this is the only instance variable,
// the access point to the list
// size
//
// a function to compute the size of the list, using a loop
// an empty list has size 0
public int size () {
int count = 0;
for (Node tmp = first; tmp != null; tmp = tmp.next)
count++;
return count;
}
/*
* maxCharacter
*
* a function to compute the 'maximum' character in the list using recursion
* You will want to create a helper function to
* do the recursion
*
* precondition: list is not empty
*
* Examples:
* ["ababcdefb"].maxCharacter() == 'f'
* ["eezzg"].maxCharacter() == 'z'
* ["a"].maxCharacter() == 'a'
*/
public char maxCharacter () {
return maxCharacterHelper(first, first.size());
}
public char maxCharacterHelper(Node first, int index) {
char[] alpha = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int max = 0;
while(index > 0 )
max = alpha.indexOf(first.item) > max ? first.item : max;
maxCharacterHelper(first, index-1);
return max;
}
' '' Если бы вы могли объяснить, как я рекурсивно проведу список oop, сохраняя при этом самый большой символ, я был бы очень признателен.