Preguntas de Niuke Net Brush: recorrido jerárquico en zigzag de árboles binarios

Descripción del problema

Dado un árbol binario, devuelva el recorrido de la secuencia de capas en zigzag del árbol binario (la primera capa es de izquierda a derecha y la siguiente capa es de derecha a izquierda, alternando así)

Ingrese descripción:
Ingrese un árbol

Descripción de salida:
recorrido en zigzag del árbol de salida

Ejemplo

Ejemplo 1

Ingrese
{3,9,20, #, #, 15,7}

Resultado
[
[3],
[20,9],
[15,7]
]

Soluciones

análisis

  1. El área local es obviamente un problema de búsqueda de amplitud primero (bfs). La búsqueda de amplitud primero generalmente usa la estructura de datos de las colas para atravesar los nodos de cada capa, y luego agrega los nodos izquierdo y derecho a su vez, y usa la bandera para determinar si es necesario realizar el resultado.

método

  1. Amplitud primera búsqueda

Código

// 思路1
public class Solution {
    
      
    public ArrayList<ArrayList<Integer>> zigzagLevelOrder(TreeNode root) {
    
    
        if (root == null) return new ArrayList<>();
        // write code here
        Queue<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        ArrayList<ArrayList<Integer>> result = new ArrayList<>();
        boolean flag = true;
        while (!queue.isEmpty()) {
    
    
            ArrayList<Integer> list = new ArrayList<>();
            int size = queue.size();
            for (int i = 0; i < size; i++) {
    
    
                TreeNode node = queue.poll();
                list.add(node.val);
                if (node.left != null) queue.add(node.left);
                if (node.right != null) queue.add(node.right);
            }
            if (!flag) {
    
    
                Collections.reverse(list);
            }
            flag = !flag;
            result.add(list);
        }

        return result;
    }
}

Análisis de complejidad de tiempo:
O (M): La primera búsqueda de amplitud debe atravesar todos los nodos.

Análisis de complejidad del espacio:
O (1): Además de los resultados, no se utiliza espacio de almacenamiento adicional.

Si quieres hacer la prueba, puedes ir directamente al enlace de Niuke.com para hacer la prueba

Recorrido en secuencia en zigzag del árbol binario

Supongo que te gusta

Origin blog.csdn.net/qq_35398517/article/details/113768701
Recomendado
Clasificación