質問

私は、このコードの断片を持っている。

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、元々渡されたオブジェクトが同じままになります。

あなたの質問はパラメータ渡しよくある質問のトップ1です。私自身は、すでに複数回この質問に答えました。 にそれをチェックアウト。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top