Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

204
Vistas
¿Cómo podría implementar una función que realice un seguimiento de los subarreglos en una matriz 2d de nodos de árboles binarios y devuelva elementos específicos de cada subarreglo?

Tengo una función de ayuda que primero itera a través de un árbol de búsqueda binario e inserta cada 'nivel' del árbol binario en un subarreglo, que luego se inserta en un arreglo 2d.

Por ejemplo:

 // a // / \ // bc // / \ \ // def

Se ve como esto:

 // [ // ['a'], // ['b', 'c'], // ['d', 'e', 'f'] // ]

Aquí está mi función auxiliar:

 const myLevels = (root) => { const subLevels = []; const queue = [{ node: root, currentLevel: 0, }]; while (queue.length > 0) { let { node, currentLevel } = queue.shift(); if (subLevels.length === currentLevel) { subLevels.push([node.val]); } else { subLevels[currentLevel].push(node.val); }; if (node.left !== null) queue.push({ node: node.left, currentLevel: currentLevel + 1 }); if (node.right !== null) queue.push({ node: node.right, currentLevel: currentLevel + 1 }); }; return subLevels; };

Esto funciona, sin embargo, quiero usar la función auxiliar en otra función que devolverá un elemento específico de cada nivel que devuelve la función auxiliar. Por ejemplo, ¿qué pasaría si quisiera devolver los elementos más a la izquierda y más a la derecha de cada nivel? ¿O si quisiera encontrar el segundo valor más grande en cada nivel (asumiendo que cada valor de nodo consiste en un número), o si quisiera devolver las vocales de cada nivel?

Mi enfoque actual es iterar a través de cada subarreglo de la matriz 2d y luego iterar a través de esos elementos, ya que este enfoque tiene más sentido para mí. Sin embargo, no tengo idea de cómo conceptualizar el seguimiento de cada nivel y decirle a mi función que "mire este subarreglo como si fuera un arreglo completamente nuevo".

Esta es mi función principal hasta ahora:

 function findXEachLevel(root) { const levels = myLevels(root); let finalArray = []; for (let i = 0; i < levels.length; i++) { let currentLevel = levels[i]; console.log(currentLevel) // Shows the current subarray in the 2d array for (let j = 0; j < currentLevel.length; j++) { let currentValue = currentLevel[j]; console.log(currentValue) // Shows the current value in the subarray }; }; };

¿Sería una devolución de llamada una solución viable aquí, o existe un enfoque más simple?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda