判斷二叉樹是否是平衡二叉樹

2021-08-31 03:51:32 字數 991 閱讀 5459

平衡二叉搜尋樹(balanced binary tree)具有以下性質:它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。

思路:如果一顆二叉樹的所有子樹都是平衡二叉樹,它一定是平衡二叉樹。

#include

using

namespace std;

typedef

struct bnode* btree;

struct bnode

;void

insert

(btree &t,

int data)

else

if(data>data)

insert

(t->left,data)

;else

if(data>=t-

>data)

insert

(t->right,data);}

bool

isbalancetree

(btree root,

int&depth)

int ldepth =

0,rdepth=0;

if(!isbalancetree

(root-

>left, ldepth)||!

isbalancetree

(root-

>right, rdepth)

) depth = rdepth > ldepth ? rdepth +

1: ldepth +1;

return

abs(ldepth - rdepth)

<2;

}int

main()

if(isbalancetree

(t,depth)

)cout<<

"yes"

<<

" "

"no"

<}

判斷二叉樹是否是平衡二叉樹

二叉樹的節點定義為 public class treenode 二叉樹的深度 根節點到葉節點的最長路徑長度 平衡二叉樹 二叉樹中任一節點的左右子樹的深度相差不超過1 遞迴的方法 如下 public boolean isbalanced treenode root intleft getheight ...

判斷二叉樹是否是平衡二叉樹

平衡樹 balance tree,bt 指的是,任意節點的子樹的高度差都小於等於1。力扣 110也有該題,可以用來驗證。如果二叉樹為空,返回true。計算出左子樹和右子樹的最大深度。如果左右子樹的最大深度的差值小於2,並且左 右子樹都是平衡二叉樹,則該二叉樹是平衡二叉樹。判斷二叉樹是否是平衡二叉樹 ...

判斷二叉樹是否是平衡二叉樹

include bits stdc h using namespace std define mem a,b memset a,b,sizeof a define pb push back typedef long long ll const int maxn 1e4 7 const int inf...