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(对象)
检查两个对象的内容是否相等(取决于实现)。噢,见鬼!我总是忘记这一点。非常抱歉。