LeetCode //C - 104. Profundidad máxima del árbol binario

104. Profundidad máxima del árbol binario

Dada la raíz de un árbol binario, devuelve su profundidad máxima.

La profundidad máxima de un árbol binario es el número de nodos a lo largo del camino más largo desde el nodo raíz hasta el nodo hoja más lejano.
 

Ejemplo 1:

inserte la descripción de la imagen aquí

Entrada: raíz = [3,9,20,null,null,15,7]
Salida: 3

Ejemplo 2:

Entrada: raíz = [1,nulo,2]
Salida: 2

Restricciones:

  • El número de nodos en el árbol está en el rango [0, 1 0 4 10^41 04 ].
  • -100 <= Valor.nodo <= 100

De: LeetCode
Enlace: 104. Profundidad máxima del árbol binario


Solución:

Ideas:

Función principal: maxDepth(struct TreeNode root) *
Esta función calcula la profundidad máxima de un árbol binario de forma recursiva. Así es como funciona:

  1. Caso base: si el nodo raíz es NULL, la profundidad es 0. Esto significa que ha llegado al hijo de un nodo hoja (que no existe), por lo que devuelve 0.

  2. Caso recursivo: de lo contrario, la función calcula la profundidad máxima de los subárboles izquierdo y derecho mediante llamadas recursivas.

  3. Encuentra el máximo y regresa: Finalmente, la función encuentra el máximo de las dos profundidades obtenidas anteriormente y le suma 1. La suma de 1 representa la profundidad del nodo actual.

Código:
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
int max(int a, int b) {
    
    
    return (a > b) ? a : b;
}

int maxDepth(struct TreeNode* root) {
    
    
    if (root == NULL) {
    
    
        return 0;
    }
    int leftDepth = maxDepth(root->left);
    int rightDepth = maxDepth(root->right);
    return max(leftDepth, rightDepth) + 1;
}

Supongo que te gusta

Origin blog.csdn.net/navicheung/article/details/132646117
Recomendado
Clasificación