平衡二叉树的判定(1077)

来源:互联网 发布:淘宝开店充值怎么做 编辑:程序博客网 时间:2024/05/22 15:19

平衡二叉树(Balanced Binary Tree)具有以下性质:

它是一 棵空树它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

这里我们可以一个节点一个节点的判断是否为平衡二叉树

求树的高度的代码如下

int high(node *t){if(t!=NULL){return high(t->lc)>high(t->rc)?high(t->lc)+1:high(t->rc)+1;}elsereturn 0;}

然后依次判断其他节点,这里用到了递归算法

bool balance(node *t){if(t==NULL)return 1;int lh = high(t->lc);int rh = high(t->rc);if(abs(lh-rh)>1)return 0;return balance(t->lc) && balance(t->rc);}




0 0
原创粉丝点击