¡Acostúmbrate a escribir juntos! Este es el octavo día de mi participación en el "Nuggets Daily New Plan · April Update Challenge", haz clic para ver los detalles del evento .
Tema Descripción
Este es un recorrido de orden de nivel de 429. Árbol N-ario en LeetCode con dificultad media .
Etiqueta : "BFS", "árbol"
Dado un árbol de N
bifurcación , devuelva un recorrido de orden de nivel de sus valores de nodo. (es decir, de izquierda a derecha, atravesando capa por capa).
La entrada serializada al árbol se recorre en orden de nivel, con cada conjunto de nodos secundarios separados por un null
valor (ver ejemplo).
Ejemplo 1:
输入:root = [1,null,3,2,4,null,5,6]
输出:[[1],[3,2,4],[5,6]]
复制代码
Ejemplo 2:
输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]
复制代码
insinuación:
- La altura del árbol no excederá
1000
- El número total de nodos en el árbol es entre
BFS
Solo hazlo de acuerdo BFS
al .
Como necesitamos construir la respuesta en "capas", esto también se hace capa por capa en un solo BFS
paso .
Código:
class Solution {
public List<List<Integer>> levelOrder(Node root) {
List<List<Integer>> ans = new ArrayList<>();
Deque<Node> d = new ArrayDeque<>();
if (root != null) d.addLast(root);
while (!d.isEmpty()) {
int size = d.size();
List<Integer> list = new ArrayList<>();
while (size-- > 0) {
Node t = d.pollFirst();
for (Node node : t.children) d.addLast(node);
list.add(t.val);
}
ans.add(list);
}
return ans;
}
}
复制代码
- complejidad del tiempo:
- Complejidad del espacio:
finalmente
Este es el primer No.429
artículo serie comienza el 01/01/2021. A partir de la fecha de inicio, hay 1916 preguntas en LeetCode, algunas de las cuales están bloqueadas. Primero pondremos todas las preguntas sin cerraduras Tema terminado.
En esta serie de artículos, además de explicar las ideas de resolución de problemas, se dará el código más conciso posible. Si se trata de soluciones generales, también se proporcionarán las plantillas de código correspondientes.
Para facilitar a los estudiantes la depuración y el envío de código en la computadora, he establecido un repositorio relacionado: github.com/SharingSour… .
En la dirección del almacén, puede ver el enlace a la solución de la serie de artículos, el código correspondiente de la serie de artículos, el enlace a la pregunta original de LeetCode y otras soluciones preferidas.