我最近一直在研究二进制搜索树及其在Java中的实现。但是我的问题与obj更相关。面向程序设计比数据结构更多。类二叉树的方法之一实现如下:

 protected BinaryNode<AnyType> findMin( BinaryNode<AnyType> t )
 {

    //BinaryNode<AnyType> k= new BinaryNode<AnyType>(x);
    if( t != null )
        while( t.left != null )
        {
             t=t.left;


        }
    return t;
}


现在,如果不是“ t”,而是返回“ root”,则返回二叉树的最小元素,但是最后该方法是否不会更改“ root”的值?实际上,我知道它不会改变它,但是我不明白为什么。

最佳答案

树没有任何变化。 t是您插入到方法中的任何节点的临时替换。与执行此操作时相同:

int x = 5;
int y = x + 1;
System.out.println(x);
System.out.println(y);


输出仍然是:


  5
  
  6

09-13 11:57