Ich habe den folgenden Code in dem Typ T Vergleichbar erstreckt, aber ich habe einen Compiler-Fehler, wenn ich versuchegenerischer Typ Anwendungsbereich gilt nicht für innere Klasse?
root.node.compareTo (min) zu tun.
Sagen compareTo gilt nicht. Es scheint, dass der allgemeine Geltungsbereich nicht für die innere Klasse gilt.
public class Tree<T extends Comparable> {
public class Node<T>{
private T node;
private Node<T> left;
private Node<T> right;
public Node(T node, Node<T> left, Node<T> right) {
super();
this.node = node;
this.left = left;
this.right = right;
}
}
public boolean isBalanced(Node<T> root){
return isBalanced(root, Integer.MIN, Integer.MAX);
}
private boolean isBalanced(Node<T> root, T min, T max){
if(root == null){
return true;
}
if(root.node.compareTo(min) < 0 || root.node.compareTo(max) > 0){
return false;
}
return isBalanced(root.left, min, root.node) || isBalanced(root.right, root.node, max);
}
}
"(Anmerkung: Verwenden Sie auch erweitert>)" oder besser '>' –
newacct