Musíme navštívit všechny koncové uzly a zjistit, jak hluboké jsou. To naznačuje:
Dát vaše funkce uzlů návštěvě zvláštní argument. Je třeba vědět, ne právě tam, kde to jde, ale i to, jak je hluboká. Pokaždé, když se to jmenuje, je to jen o jít hlouběji, takže uzel návštěvník prostě musí zvýšit počet hloubku to dostal od volajícího.
Nyní jeden ze 2 věcí se může stát:
Buď uzel jste našli je koncový uzel, to znamená, že nemá žádné děti; V tomto případě si návštěvník potřebuje vrátit svou hloubku volajícímu. Jo, to prostě vrátí číslo, které dostal od volajícího, + 1.
nebo to není koncový uzel. V takovém případě se bude muset buď 1, nebo 2 děti. Musíme dostat ty hloubky zprávy z našich dětí zpět do volající, takže stačí vrátit součet hloubek vrácených dětí.
Kouzlem rekurze, počet vrátil ke kořeni se návštěvník bude součet hloubky všech dětí.
Chcete-li získat průměrnou hloubku, budete chtít, aby to rozdělit podle počtu listových uzlů; který bych odjet na druhý průchod pro výpočet. Mohlo by to být provedeno v jednom, ale to by bylo trochu složitější.