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.

War es hilfreich?

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
scroll top