輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
csdn博主詳細解釋:
二叉查詢樹與平衡二叉樹
平衡二叉樹:一顆高度平衡的二叉查詢樹
自頂向下,對於每個節點,都計算一下左子樹以及右子樹的差的絕對值。
利用兩個迭代實現
class
solution
:def
isbalanced_solution
(self, p)
:if p is
none
:#判斷邊界條件,若為空,則返回none
return
true
left = self.depth(p.left)
#判斷子結點的深度
right = self.depth(p.right)
#判斷子結點的深度
return
abs(left - right)
<=
1and self.isbalanced_solution(p.left)
and self.isbalanced_solution(p.right)
defdepth
(self, p)
:#判斷子節點的深度
if p is
none
:return
0return1+
max(self.depth(p.left)
, self.depth(p.right)
)#利用不斷地遞迴去判斷
牛客(39)平衡二叉樹
題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。public boolean isbalanced solution treenode root 它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。if math.abs treedepth root...
66道牛客程式設計題 二叉搜尋樹的第k個結點
給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如,5,3,7,2,4,6,8 中,按結點數值大小順序第三小結點的值為4。用中序遍歷,這樣得到的列表是排好序的 class solution 返回對應節點treenode defkthnode self,proot,k write code here ...
C 程式設計題 平衡二叉樹
include include using namespace std typedef struct node node typedef struct tree void insert tree tree,int value else else else else int get height no...