java如何将BNode添加到二进制搜索树?
在我们的作业中,有一个问题要求我们在BTree类中编写一个方法。它必须将整数作为参数,然后将其添加到树中。所以我这样做了:
public void add(int v){
if(root == null){
root = new BNode(v);
}
else{
add(v, root);
}
}
public void add(int v, BNode branch){
if(v == branch.getVal()){
return;
}
if(v<branch.getVal()){
if(branch.getLeft() == null){
branch.setLeft(new BNode(v));
}
else{
add(v, branch.getLeft());
}
}
else{
if(branch.getRight() == null){
branch.setRight(new BNode(v));
}
else{
add(v, branch.getRight());
}
}
}
但我想知道,当方法的参数只是一个BNode时,如何添加?只是:
public void add(BNode b){
add(BNode.getVal());
}
没有比这更有效的方法了吗?任何帮助都将不胜感激
# 1 楼答案
是的,将参数类型转换为另一种方式:使您的方法不期望使用
int
,而是使用BNode
。因此,改变这一点:到
和变化:
到
然后创建一个不同的方法:
这样可以避免在内存中创建一个额外的对象