我真的为此感到挣扎。我不知道为什么我不能将这个值与Node.value进行比较...
行:
if (value < currentNode.value) {
问题:运算符'
public class BinaryTree<V extends Comparable<V>> {
Node<V> root;
public void addNode(V value) {
Node newNode = new Node(value);
if (root == null) {
root = newNode;
} else {
Node<V> currentNode = root;
Node<V> parent;
while (true) {
parent = currentNode;
if (value.compareTo(currentNode.value) == -1) {
currentNode = currentNode.left;
if (currentNode == null) {
parent.left = newNode;
return;
}
} else {
currentNode = currentNode.right;
if (currentNode == null) {
parent.right = newNode;
return;
}
}
}
}
}
public int compareTo(V v){
if(this.V > v) return 1;
if(this.V < v) return -1;
else return 0;
}
}
您的节点还应该具有可扩展的类似Node<V extends Comparable<V>>
的通用类型,并应使用该通用Node<V> root
进行初始化-这适用于所有Node变量。