Java - AVL 树搜索

Java - AVL tree search

我已验证有问题的树 t 实际上是一棵 AVL 树。我的问题是,无论搜索的字符串是否在树中,ss2 总是 null。我怀疑这更像是一个递归问题,而不是 AVL 树问题。

t.val 产生节点字符串的值。 t.leftt.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;

    }

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