0
我有一個正常的二叉搜索樹,用數據的字符串值和左右節點實現。樹工作正常,但我有我的rankOf函數的麻煩。我使用遞歸來查找節點,並且當元素存在時方法成功,但是當不存在的值不起作用時,我無法弄清楚如何設置布爾值來幫助解決這個問題。下面是代碼:Java BST遞歸變量設置
private int rankOf(String s, Node n){
if (n != null){
//check root
if (s.compareTo(n.value) == 0){
if (n.left != null){
return size(n.left);
}
return 0;
}
// only worry about left tree, easy
if (s.compareTo(n.value) < 0){
return rankOf(s, n.left);
} else {
// must count entire left tree plus root node
return rankOf(s, n.right) + size(n.left) + 1;
}
}
//null or not found
return 0;
}
當根等於我所知道的元素在樹這樣的東西應該在那裏,但不知道該如何處理這個值。
「但是當一個不存在的值不起作用」它會拋出一個異常?請張貼你的樹 – CodeIsLife
你的''size''方法返回什麼?如果成功/失敗,你的方法應該返回什麼? –
@SchiduLuca Size返回傳遞的節點的子樹上的節點數量。如果失敗,它可以返回-1。 –