按值和引用传递 - 我一直在 C++ 中这样做。但我想知道java的行为。
我正在写一个 BST 并变出以下方法:
private Node<T> get_node(T data)
{
Node<T> tmp = null;
if (isEmpty())
{
return null;
}
tmp = root;
while (tmp != null)
{
//System.out.println("tmp is " + tmp.getData());
if (compare(tmp.getData(), data) < 0) //data is greater
{
System.out.println("get right");
tmp = tmp.getRight();
}
else if (compare(tmp.getData(), data) < 0) //tmp is greater
{
System.out.println("get left");
tmp = tmp.getLeft();
}
else if (compare(tmp.getData(), data) == 0) //we found it
{
System.out.println("get left");
return tmp;
}
}
return null;
}
这是在 BST 类本身中 - 我正在使用这个辅助函数在“this”中构造一个新的 BST。
问题是,我不认为这个方法实际上是在返回 ACTUAL 节点。我认为它正在返回一个副本或对我同样无用的东西。我真的希望这能在其中返回 ACTUAL 节点。
这是怎么做到的?这完全完成了吗?