Может ли кто-нибудь проверить правильность приведенного ниже кода для высоты? Я не уверен, могу ли я использовать рекурсию, поскольку public int height()
не имеет переданных аргументов. Я предполагаю, что высота пустого дерева равна 0.
public class BinaryTree {
private class Node {
String value;
Node left;
Node right
}
Node root;
// Assume there is a constructor and various methods here
public int height() {
if (Node == null) {
return 0;
}
return 1 + math.max(left.height(), right.height());
}
}
Это поможет. Некоторые фрагменты кода перемещены на свои места, проверка нуля на рекурсивном шаге переписана, добавлен небольшой образец:
public class BinaryTree {
public static void main(String[] args) {
Node sports = new Node();
Node individual = new Node();
Node team = new Node();
sports.left = individual;
sports.right = team;
Node javelin = new Node();
individual.left = javelin;
System.out.println(sports.height()); // Return 3
}
private static class Node {
Node left;
Node right;
public int height() {
return 1 + Math.max(left == null ? 0 : left.height(), right == null ? 0 : right.height());
}
}
}