[] Prueba B014_ completa árbol binario (secuencia de recorrido)

Uno, Título Descripción

给定一个二叉树,确定它是否是一个完全二叉树。

百度百科中对完全二叉树的定义如下:

若设二叉树的深度为 h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,
第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。(注:第 h 层可能包含 1~ 2h 个节点。)

, La solución segundo problema

Método a: preorden capa

  • Puesto que la secuencia es atravesada, por lo que se recorre los nodos son continuas.
  • Si se encuentra con un nodo está vacía, es natural que no continuará para ser añadido a la cola de vacío nodo hijo, por lo que se recorre directamente al siguiente nodo.
  • Si el siguiente nodo (es decir, el nodo vecino) no está vacío, directamente return false.
public boolean isCompleteTree(TreeNode root) {
  if (root == null)
      return true;
  Queue<TreeNode> queue = new LinkedList<>();
  queue.add(root);
  boolean meetEmpty = false;

  while (!queue.isEmpty()) {
    TreeNode node = queue.poll();
    if (node == null) {
      meetEmpty = true;
      continue;
    }
    if (meetEmpty)  return false;
    queue.add(node.left);
    queue.add(node.right);
  }
  return true;
}

Análisis de la complejidad

  • Complejidad de tiempo: la ( norte ) O (n) ,
  • Espacio de la complejidad: la ( norte ) O (n) ,
Publicados 495 artículos originales · ganado elogios 105 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_43539599/article/details/104851405
Recomendado
Clasificación