<prompt> Tengeneza chaguo la kukokotoa ili kukokotoa urefu wa mti wa binary.  <response>: Mti wa binary unajumuisha nodi, kila nodi ina angalau watoto wawili kwa hivyo binary. Urefu wa mti wa binary ni umbali kutoka mizizi yake hadi jani la mbali zaidi. Tunaweza kuhesabu umbali huu kwa kuvuka mti, kutembelea nodi zake, na kulinganisha urefu wa miti ndogo ya kushoto na kulia. Urefu wa mti wetu ni 1 urefu wa juu wa miti ndogo yake. Hapa kuna kazi ya Python kukamilisha kazi hii: python def calc_tree_heightnodi: kesi ya msingi ikiwa nodi ni Hakuna: mti tupu hauna urefu wa kurudi 0 mwingine: hatua ya kurejesha: hesabu urefu wa miti ndogo ya kushoto na kulia kushoto_urefu calc_tree_heightnodi.kushoto right_height calc_tree_heightnodi.kulia urefu wa nodi ni 1 upeo wa juu wa urefu wake wa mti mdogo 1 maxurefu_wa_kushoto, urefu_wa_kulia Inachukua nodi ya mizizi ya mti tunayotaka kukokotoa urefu kutoka kama hoja yake. Tunaanza kwa kutathmini kesi za msingi, kwa hivyo ikiwa tunapokea mti usio na kitu, tunarudi 0 kwa ufafanuzi. Ikiwa tunapokea mti usio na tupu, tunahesabu urefu wake kwa kurudia: urefu wake ni sawa na moja pamoja na urefu wa juu wa miti ndogo. Tunapata urefu wa miti ndogo kwa kuita kazi yetu tena, na watoto wa nodi ya kushoto na kulia kama hoja. Tunapofikia nodes za majani, hawana watoto, hivyo urefu wao ni mmoja recursion stops. Wakati urejeshaji unarudi, tutakuwa tumekokotoa urefu wa miti midogo yote, kwa hivyo urefu wa mti wetu ndio upeo wa juu kati ya urefu unaorudishwa na simu za kujirudia pamoja na moja. 