nodo raíz del árbol binario de entrada, la determinación árbol no es un árbol binario equilibrado.
Si la profundidad de los subárboles izquierdo y derecho de cualquier nodo de un árbol binario difiere en no más de un punto, entonces es un árbol binario equilibrado.
nota:
Disposiciones árbol vacío es un árbol binario equilibrado.
Muestra
de entrada: binario [5,7,11, null, null, 12,9 , null, null, null, null] como se muestra a continuación,
5
/
711
/
129
Salida: true
class Solution {
public:
bool isBalanced(TreeNode* root) {
if(!root) return true;
if(judge(root,1) == -1) return false;
return true;
}
int judge(TreeNode* root,int dep) {
int Left = dep,Right = dep;
if(root -> left) Left = judge(root -> left,dep + 1);
if(root -> right) Right = judge(root -> right,dep + 1);
if(!root -> left && !root -> right) return dep;
if(Left == -1 || Right == -1) return -1;
if(abs(Left - Right) <= 1) return Left + Right;
else return -1;
}
};