Leetcode 平衡二叉樹判定

2021-10-06 15:17:16 字數 534 閱讀 7064

判斷給定的二叉樹是否是平衡的

在這個問題中,定義平衡二叉樹為每個節點的左右兩個子樹高度差的絕對值不超過1的二叉樹

思路:一棵樹是平衡二叉樹 那麼對於root節點  其左右子樹都是平衡二叉樹  並且root左右子樹高度之差不大於1

在遞迴返回的時候,順帶返回高度,並且一旦出現不平衡的情況,立即結束整個判斷

bool isbalanced(treenode* root) 

bool depth(treenode* root,int& high)

if(root->right!=null)

if(left_high-right_high<-1 || left_high-right_high>1) //左右相差較大

return false;

high=max(left_high,right_high)+1;//當前樹的高度

return true;//當前root是平衡二叉樹

}

平衡二叉樹的判定

題目描述 輸入一棵二叉樹的根結點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意結點的左右子樹的深度相差不超過1,那麼它就是一棵平衡二叉樹。2.1 方法一 思路 在遍歷樹的每乙個節點的時候,呼叫treedepth函式得到它的左右子樹的深度,如果每個節點的左右子樹的深度相差都不超過1,那麼按照定義它就是...

平衡二叉樹的判定

題目內容 編寫程式判斷給定的二叉樹是否是平衡二叉樹。輸入 二叉樹的先序序列。輸出 如果是平衡二叉樹,輸出yes 否則輸出no 樣例輸入 ab c 樣例輸出 yes 下面來看 include include using namespace std struct tree void init tree ...

leetcode 平衡二叉樹

給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 給定二叉樹 1,2,2,3,3,null,null,4,4 1 ...