[英]why this java code does not work?
我有這個代碼片段
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(5); insert(8);
類的insert
函數時insert(5); insert(8);
insert(5); insert(8);
它始終輸出root is null
。
有什么問題??
您的問題是insert
方法內部的ro
變量只是對bst.ro
引用的副本。 這意味着,如果您在方法內部重置 ro
變量,則僅引用的副本將指向新的 ro
,原始傳遞的對象將保持不變。
您的問題是“參數傳遞常見問題”的前1個問題。 我本人已經多次回答了這個問題。 看看吧 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.