树的深度和高度
根节点r,某个子孙节点v
深度:从v走到r的边数
高度:一棵树的最大深度即高度,约定空树高度为-1
平衡二叉树的判定
public int getHeight(TreeNode treeNode) {
if(treeNode == null) return -1;
int leftHeight = treeNode.left != null ? getHeight(treeNode.left) : -1;
int rightHeight = treeNode.right != null ? getHeight(treeNode.right) : -1;
return 1 + (leftHeight > rightHeight ? leftHeight : rightHeight);
}
public boolean nodeIsBalanced(TreeNode treeNode) {
if(treeNode == null) return true;
int leftHeight = treeNode.left != null ? getHeight(treeNode.left) : -1;
int rightHeight = treeNode.right != null ? getHeight(treeNode.right) : -1;
return Math.abs(leftHeight - rightHeight) < 2;
}
public boolean isBalanc