Попытка придумать алгоритм для посещения каждого узла в BST и сравнить каждый, чтобы найти наибольшее значение int, мой BST является дисбалансом и отсортирован в алфавитном порядке, но имеет значения int с ними и Мне нужно найти наибольшее значение int в дереве.Нужен рекурсивный алгоритм для поиска всех BST
мой код:
private Object Mode(BinaryTreeNode root) {
if (root == null) {
return null;
}
Object left = root.getElement();
Object right = root.getElement();
if (root.getLeftChild() != null) {
Object leftEle = root.getLeftChild().getElement();
if (left.data < leftEle.data) {
left = Mode(root.getLeftChild());
}
}
if (root.getRightChild() != null) {
Object rightEle = root.getRightChild().getElement();
if (right.data < rightEle.data) {
right = Mode(root.getRightChild());
}
}
if(left.data > right.data){
return left;
}
return right;`
}
я знаю, что сравнение происходит, когда вызовы методов извлекаются обратно из стека, но я не уверен, если я в конечном итоге на самом деле проверить все узлы
Если вы можете поместить некоторый (отформатированный) код в свое описание, люди здесь могут лучше помочь вам с вашей синтаксической проблемой. Ваш psuedo-код довольно точен и правильно использует рекурсию. –
@MileHigh, пожалуйста, продумайте это 'my BST - это дисбаланс и отсортирован по алфавиту, но с их значениями есть int. Каков порядок сортировки среди целочисленного значения и символа? – radbrawler