gpt4 book ai didi

java - 为什么这段java代码不起作用?

转载 作者:行者123 更新时间:2023-12-01 07:16:03 24 4
gpt4 key购买 nike

我有这个代码片段

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); 它总是打印 root is null

有什么问题吗?

最佳答案

您的问题是 insert 方法中的 ro 变量只是对 bst.ro 引用的副本。这意味着,如果您在方法内重置ro变量,则引用的副本将指向newro,原来传递的对象将保持不变。

您的问题是参数传递常见问题解答的前 1 个问题。我自己已经不止一次回答过这个问题了。 Check it out .

关于java - 为什么这段java代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2081297/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com