Q391判斷是否為平衡二叉樹(遞迴實現)

2021-07-13 16:08:40 字數 685 閱讀 7360

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...