有人可以检查下面的高度代码是否正确吗?我不确定是否可以使用递归,因为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());
}
}
答案 0 :(得分:0)
这可以解决问题。一些代码块移到了正确的位置,重写了递归步骤中的null检查,并添加了一些示例:
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());
}
}
}