java不能从内部类转换为类
我有一个包含内部类节点的BinaryTree类。 我想做的是通过调用树,在我的二进制树树中插入一些节点。插入(节点)。但是,为了保持干净一致,我不想在节点内部类中创建一个insert()方法。因此,我尝试了下面的代码,但出现了一个错误:无法从BinaryTree强制转换。节点到二进制树
我该怎么办
二叉树类
public class BinaryTree {
Node root = null;
private class Node {
int value;
Node left;
Node right;
}
public BinaryTree(int v) {
root.value = v;
root.left = null;
root.right = null;
}
public void insert(Node n) {
/* Error */
if(n.value > root.value) ((BinaryTree) root.right).insert(n);
}
}
主类
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String[] str = sc.nextLine().split(" ");
BinaryTree tree;
for(int i = 0; i < str.length-1; i++) {
int val = Integer.parseInt(str[i]);
//tree.insert(node);
}
}
}
谢谢
# 1 楼答案
您不需要在
insert
方法内进行类型转换。应该是这样的:# 2 楼答案
要在树中插入节点,需要定义插入节点的位置,因此插入方法应类似于:
它不需要浇铸
要查找
rightTo
节点,可以使用:要将节点作为最后一个节点插入,可以使用:
其中
getTail
类似于:注意:代码没有经过测试,所以需要仔细调试