Wir müssen alle Blattknoten besuchen und herauszufinden, wie tief sie sind. Das deutet an:
Geben Sie Ihre Knoten-Besuch Funktion ein zusätzliches Argument. Es muss wissen nicht nur, wo es geht, sondern auch, wie tief es ist. Jedes Mal, es heißt, es heißt auf tiefer zu gehen, so dass Ihre Knoten Besucher haben nur die Tiefe Nummer sie vom Anrufer bekamen zu erhöhen.
Jetzt ist einer von zwei Dinge können passieren:
Entweder ist der Knoten, den Sie fanden ein Blattknoten ist, dh es keine Kinder hat; in diesem Fall muss Ihre Besucher ihre Tiefe an den Anrufer zurück. Ja, es gibt nur die Nummer aus dem Anrufer bekam, + 1.
oder es ist kein Blattknoten. In diesem Fall wird es entweder 1 oder 2 Kinder hat. Wir brauchen diese Tiefen Berichte unserer Kinder bis zum Anrufer zurück zu bekommen, so Rückkehr nur die Summe der von den Kindern zurück Tiefen.
Durch die Magie der Rekursion, kehrte die Zahl der Besucher der Wurzel wird die Summe der Tiefen aller Kinder sein.
Um eine durchschnittliche Tiefe zu erhalten, sollten Sie diese durch die Anzahl der Blattknoten teilen; die ich zu einem zweiten Traversal verlassen würde zu berechnen. Es könnte in einem getan werden, aber es wäre ein wenig komplizierter.