Pergunta 104 das perguntas mais quentes 100:
class Solution {
public int maxDepth(TreeNode root) {
//当root为null时,二叉树长度为0
if(root == null){
return 0;
}
//当root左右子树都不为null,整棵树最大长度为左右子树长度的最大值+1;
return 1 + Math.max(maxDepth(root.left),maxDepth(root.right));
}
}
Análise de ideias: Ao fazer este tipo de problema, você deve aprender a converter grandes problemas em pequenos problemas. Por exemplo, neste problema, se você pedir a profundidade máxima de uma árvore binária, você pode transformá-la em encontrar a profundidade máxima de sua subárvore + 1, quando sua subárvore Quando é um nó folha, a profundidade é 1, e quando a subárvore está vazia, a profundidade é 0.
Mas a profundidade da árvore esquerda não pode ser sobreposta com a profundidade da árvore direita, então temos que pegar seu valor máximo e então podemos usar a recursão para resolvê-lo.