[Leetcode] 0102. Recorrido de orden a nivel de árbol binario

Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github

Dado que raíz de un árbol binario, retorno El recorrido del orden de nivel de los valores de sus nodos. (es decir, de izquierda a derecha, nivel por nivel).

 

Ejemplo 1:

Aporte: raíz = [3,9,20,nulo,nulo,15,7]
Producción: [[3],[9,20],[15,7]]

Ejemplo 2:

Aporte: raíz = [1]
Producción: [[1]]

Ejemplo 3:

Aporte: raíz = []
Producción: []

 

Restricciones:

  • El número de nodos en el árbol está en el rango [0, 2000].
  • -1000 <= Nodo.val <= 1000

Tabla de contenido

Pitón

				
					Complejidad de tiempo #: O(n) Complejidad de espacio #: O(n) de escribir importar Lista, Clase opcional NodoÁrbol: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right clase Solución: def levelOrder(self, root: Optional[NodoÁrbol]) -> Lista[Lista[int]]: resultado: Lista[Lista[int]] = [] def bfs(nodo: Optional[NodoÁrbol], nivel: int): si el nodo es Ninguno: devolver si len(resultado) == nivel: resultado.append([]) resultado[nivel].append(nodo.val) si nodo.izquierda: bfs(nodo.izquierda, nivel + 1) si nodo.derecha: bfs(nodo.derecha, nivel + 1) bfs(raíz, 0) devolver resultado raíz = NodoÁrbol(3) raíz.izquierda = TreeNode(9) raíz.derecha = TreeNode(20) raíz.derecha.izquierda = TreeNode(15) raíz.derecha.derecha = TreeNode(7) print(Solución().levelOrder(raíz))
				
			
es_ESEspañol