剑指offer之判断二叉树是不是平衡二叉树

简介: 剑指offer之判断二叉树是不是平衡二叉树

1 问题

判断二叉树是不是平衡二叉树

平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树


2 代码实现

int getTreeHeigh(Node *haed)
{
    if (head == NULLL)
    {
        return 0;
    }
    int left = getTreeHeigh(head->left);
    int right = getTreeHeigh(head->right);
    retur left > right ? (left + 1) : (right + 1);
}
int isBalancedTree(Node *head)
{
  if (head == NULL)
  {
    return NULL;
  }
  int left, right;
  left = isBalancedTree(head->left);
  right = isBalancedTree(head->right);
  int result = left - right;
  if (result > 1 || result < -1)
    return false;
  return isBalancedTree(head->left) && isBalancedTree(head-right);
}


相关文章
|
6月前
|
存储 Serverless 索引
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历【LeetCode刷题日志】
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历【LeetCode刷题日志】
LeetCode刷题Day14——二叉树(完全二叉树、平衡二叉树、二叉树路径、左叶子之和)
一、完全二叉树的节点个数 题目链接:222. 完全二叉树的节点个数
|
11月前
|
算法
每日一题:LeetCode-589.N叉树的前序遍历序列构造二叉树
每日一题:LeetCode-589.N叉树的前序遍历序列构造二叉树
剑指offer 58. 二叉搜索树的第k个结点
剑指offer 58. 二叉搜索树的第k个结点
53 0
|
算法
剑指offer_二叉树---平衡二叉树
剑指offer_二叉树---平衡二叉树
69 0
剑指offer_二叉树---二叉搜索树的第k个结点
剑指offer_二叉树---二叉搜索树的第k个结点
64 0
剑指offer_二叉树---二叉搜索树的后序遍历
剑指offer_二叉树---二叉搜索树的后序遍历
68 0
每日三题-二叉树的层序遍历、二叉树的中序遍历、最小覆盖子串
每日三题 二叉树的层序遍历 二叉树的中序遍历 最小覆盖子串
103 1
每日三题-二叉树的层序遍历、二叉树的中序遍历、最小覆盖子串
每日一题——两棵二叉搜索树中的所有元素
每日一题——两棵二叉搜索树中的所有元素
70 0
每日一题——两棵二叉搜索树中的所有元素
LeetCode每日一题(15)——两棵二叉搜索树中的所有元素
两棵二叉搜索树中的所有元素 1.题目 2.示例 3.思路 4.代码
LeetCode每日一题(15)——两棵二叉搜索树中的所有元素