我有这样的代码片段

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);
  }
}

当我打电话等insertinsert(5); insert(8);函数它alwaty打印root is null

什么问题??

有帮助吗?

解决方案

您的问题是ro方法内部的insert变量只是一个bst.ro基准的副本。这意味着,如果你的重置的方法中的ro变量,只是参考的副本将指向 ro,原来传递的对象将保持不变。

您的问题是参数传递FAQ的顶部1。我自己已经回答了不止一次了这个问题。 检查出来

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top