import binarytree.binarytreenode;
//二叉樹的深度——平衡二叉樹
public class q391
//求是否為平衡二叉樹,通過布林值返回
public static boolean isblanced(binarytreenode root)
int left = treedepth(root.leftnode);
int right = treedepth(root.rightnode);
int var = left - right;
if(var > 1 || var < -1)
//當二叉樹的左右子樹均為平衡二叉樹時,才返回true
return isblanced(root.leftnode)&&isblanced(root.rightnode);
}//遞迴實現求樹的深度(與q39一致)
private static int treedepth(binarytreenode root)
int nleft = treedepth(root.leftnode);
int nright = treedepth(root.rightnode);
//返回樹的深度
return (nleft > nright) ? (nleft + 1): (nright + 1);}}
判斷是否為平衡二叉樹
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹 定義 它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。舉例 判斷二叉樹是否為平衡二叉樹 例1 e a d b c 例2 e a b c 例3 e a d b c f g例1是平衡二叉樹,滿足平衡二叉樹的定義。e...
判斷是否為平衡二叉樹
本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1 從頂至底 暴力法 暴力法的思想就是求出左右子樹的高度,然後比較左子樹的高度和右子樹的高度是否符合題意,如果符合,再去判斷左子樹和右子樹是否為平衡二叉樹。此法複雜度較高,因為是從頂到底呼叫求高度函式,其實在求...
判斷是否為平衡二叉樹
題目描述 給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1 示例 1 輸入 root 3,9,20,null,null,15,7 輸出 true 示例 2 輸入 root 1,2,2,3,3,null,nul...