// Se espera que el resultado lo muestres en un console.log const arbol = { num: 25, izq: { num: 23, izq: { num: 10, }, der: { num: 80, }, }, der: { num: 28, izq: { num: 25, }, der: { num: 27, }, }, }; type THoja ={ num:number, izq?:THoja, der?:THoja }; //Detecta si un nodo es una hoj.a const esHoja=(nodo:THoja):boolean=>!(nodo.izq||nodo.der); //Cuenta cantidad de hojas del arbol. const contar =(arbol:THoja):number=>{ //Si es hoja siempre retorno 1. if (esHoja(arbol)) return 1; //Analizo ramas. let hojasNum:number = 0; if (arbol.izq) hojasNum = hojasNum+contar(arbol.izq); if (arbol.der) hojasNum=hojasNum+contar(arbol.der); return hojasNum; } console.log(contar(arbol));