如果某二叉樹中任意結點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹
第一種解法。
缺點:遞迴次數多,效率比較低。
bool isbalance(tree* pnode) //
int treedeep(tree* pnode) //求節點的深度
第二種解法:
bool isbalance(tree* pnode, int *deep)
int left,right;
if (isbalance(pnode->left,&left)
&& isbalance(pnode->right, &right))
}return false;
}
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹
題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。該二叉樹不一定是二叉搜尋樹 分析 每碰到乙個節點,就判斷以該結點為根的左右子樹是否是平衡二叉樹 通過求左右子樹的樹高 然後在判斷該結點的左右子樹為根的子樹是否是平衡二叉樹。這樣就遍歷樹中每乙個結點,對每個結點都判斷是否平衡二叉樹。計算樹高 最壞...
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹
題目就是標題 public class main3 else public int balanced solution treenode root,int num 左節點 int left 0 if root.left null 這裡是為了判斷此節點左節點的下面是否滿足二叉樹左右深度不能超過1,下同...
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。思路1 遞迴 首先寫乙個返回樹的高度的函式 然後判斷左右子樹高度差 判斷左子樹的左右子樹高度差 判斷右子樹的左右子樹高度差 class solution inthigh treenode proot 思路2 自下而上判斷是否平衡 用遞迴雖然好,...