Java-AVL树搜索

Java-AVL树搜索,java,tree,Java,Tree,我已经验证了所讨论的树,t,实际上是一个AVL树。我的问题是,无论搜索的字符串是否在树中,s和s2总是null。我怀疑这是一个递归问题,而不是AVL树问题 t.val生成节点字符串的值t.left和t.right分别生成节点的左和右子节点 private static AVLTreeNode<String> search( AVLTreeNode<String> t, String x ) { if( t==null ) return nul

我已经验证了所讨论的树,
t
,实际上是一个AVL树。我的问题是,无论搜索的字符串是否在树中,
s
s2
总是
null
。我怀疑这是一个递归问题,而不是AVL树问题

t.val
生成节点字符串的值
t.left
t.right
分别生成节点的左和右子节点

   private static AVLTreeNode<String> search( AVLTreeNode<String> t, String x )
    {
        if( t==null ) return null;
        if( t.val==x ) return t;
        AVLTreeNode s=search(t.right,x);
        AVLTreeNode s2=search(t.left,x);
        if( s!=null ) return s;
        return s2;

    }
private静态AVLTreeNode搜索(AVLTreeNode t,字符串x)
{
如果(t==null)返回null;
如果(t.val==x)返回t;
AVLTreeNode s=搜索(t.right,x);
AVLTreeNode s2=搜索(t.left,x);
如果(s!=null)返回s;
返回s2;
}

使用
t.val.equals(x)
代替
=
,一切都会正常工作
=
检查它们是否具有相同的引用(完全相同的字符串,保存在内存中的同一位置)和
equals(对象)
检查两个对象的内容是否相等(取决于实现)。

噢,见鬼!我总是忘记这一点。非常抱歉。