2015-03-19 142 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