Java: sogar Werte in einem binären Suchbaum Count rekursiv
-
24-09-2019 - |
Frage
Ich brauche, um herauszufinden, wie viele sogar Werte in einem binären Baum enthalten ist.
Das ist mein Code.
private int countEven(BSTNode root){
if ((root == null)|| (root.value%2==1))
return 0;
return 1+ countEven(root.left) + countEven(root.right);
}
Das habe ich gerade codiert, wie ich habe keine Möglichkeit, diese aus zu testen. Ich bin nicht in der Lage zu testen im Moment, sondern brauche eine so schlecht Antwort. jede Hilfe ist sehr geschätzt.
Lösung
Wenn ein Knoten mit einem ungeraden Wert untergeordneten Knoten mit geraden Werten enthält, werden die untergeordneten Knoten nicht in Ihrem Code gezählt werden. Kleine Erweiterung unten.
private int countEven(BSTNode root){
if (root == null)
return 0;
int val = (root.value%2==1) ? 0 : 1;
return val + countEven(root.left) + countEven(root.right);
}
Andere Tipps
private int countEven(BSTNode root) {
if (root == null)
return 0;
int n = countEven(root.left) + countEven(root.right);
if(root.value % 2 == 0)
return n + 1;
else
return n;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow