2015-03-19 94 views
0

我已经验证了问题树t实际上是一个AVL树。我的问题是,无论搜索字符串是否在树中,ss2总是null。我怀疑这更像是一个递归问题,而不是AVL树问题。Java - 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; 

    } 

回答

2

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

+0

哦,拍!我总是忘记这一点。非常抱歉。 – Firkamon 2015-03-19 01:50:46