题
我有这样的代码片段
class bst {
public node root=null;
bst() {
root=null;
}
public void insert(int data) {
insert(this.root,data);
}
private void insert(node ro,int data) {
if (ro==null) {
print ("root is null");
ro=new node(data);
} else if (data>ro.data)
insert(ro.right,data);
else
insert(ro.left,data);
}
private void print (String str)
{
System.out.println(str);
}
}
当我打电话等insert
的insert(5); insert(8);
函数它alwaty打印root is null
。
什么问题??
解决方案
您的问题是ro
方法内部的insert
变量只是一个bst.ro
基准的副本。这意味着,如果你的重置的方法中的ro
变量,只是参考的副本将指向新 ro
,原来传递的对象将保持不变。
您的问题是参数传递FAQ的顶部1。我自己已经回答了不止一次了这个问题。 检查出来。
不隶属于 StackOverflow