429. Recorrido de orden de nivel del árbol N-ario: problemas de aplicación de recorrido de árbol

¡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 Nbifurcació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 nullvalor (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 [ 0 ,   1 0 4 ] [0, 10^4] entre

BFS

Solo hazlo de acuerdo BFSal .

Como necesitamos construir la respuesta en "capas", esto también se hace capa por capa en un solo BFSpaso .

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: LA ( norte ) Sobre)
  • Complejidad del espacio: LA ( norte ) Sobre)

finalmente

Este es el primer No.429artí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.

Supongo que te gusta

Origin juejin.im/post/7084043599775694862
Recomendado
Clasificación