Menu
CoddyTech

Diameter of Binary Tree

Se te da un árbol binario almacenado en el array tree en orden por niveles. La raíz está en el índice 0, los hijos del nodo en el índice i están en 2*i+1 (izquierda) y 2*i+2 (derecha), -1 marca una posición vacía y el array puede terminar con entradas -1 adicionales. Devuelve el diámetro del árbol: el número de aristas del camino más largo entre dos nodos cualesquiera. El camino puede pasar por la raíz o quedarse dentro de un subárbol.

Función

diameterOfBinaryTree(tree: integer-array) → integer
treeinteger-array
el árbol binario en orden por niveles, con -1 para una posición vacía
Devuelveinteger
el número de aristas en el camino más largo entre dos nodos

Restricciones

  • 1 ≤ tree.length ≤ 32767
  • Cada tree[i] es -1 o un valor con 0 ≤ tree[i] ≤ 1000.
  • tree[0] nunca es -1, así que el árbol tiene al menos un nodo.
  • El array puede terminar con entradas -1 adicionales después del último nodo.
  • Ambos hijos de un espacio vacío también están vacíos, y la profundidad es como máximo 14.

Ejemplos

Entrada
tree = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]
Salida
4
Explicación
La ruta 7, 4, 3, 8, 6 (índices 9, 4, 1, 0, 2) contiene cinco nodos unidos por cuatro aristas. Gira en la raíz: tres aristas hacia abajo por el lado izquierdo y una hacia abajo por el derecho.

lock icon+12 pruebas ocultas al enviar

challenge icon

Para ir más allá

¿Cómo devolverías la ruta en sí, los valores de los nodos desde un extremo del diámetro hasta el otro?

Restablecer código
def diameterOfBinaryTree(tree):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

tree = [8, 3, 6, 1, 4, -1, -1, -1, -1, 7]

Esperado

4