剑指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);
}


相关文章
|
7月前
|
存储 算法 编译器
技术经验解读:二叉树的遍历:先序中序后序遍历的递归与非递归实现及层序遍历
技术经验解读:二叉树的遍历:先序中序后序遍历的递归与非递归实现及层序遍历
48 0
|
8月前
|
存储 Serverless 索引
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历【LeetCode刷题日志】
二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历【LeetCode刷题日志】
【剑指offer】-二叉搜索树的后序遍历序列-23/67
【剑指offer】-二叉搜索树的后序遍历序列-23/67
剑指offer 58. 二叉搜索树的第k个结点
剑指offer 58. 二叉搜索树的第k个结点
58 0
剑指offer_二叉树---二叉搜索树的第k个结点
剑指offer_二叉树---二叉搜索树的第k个结点
69 0
剑指offer_二叉树---二叉搜索树的后序遍历
剑指offer_二叉树---二叉搜索树的后序遍历
73 0
剑指offer 34. 二叉搜索树的后序遍历序列
剑指offer 34. 二叉搜索树的后序遍历序列
57 0
|
算法
数据结构:根据二叉树先序遍历和中序遍历求后序遍历序列。(这大概是最简单的方法,不服来评论)
数据结构:根据二叉树先序遍历和中序遍历求后序遍历序列。(这大概是最简单的方法,不服来评论)
145 0
LeetCode 102二叉树的层序遍历&103二叉树锯齿形遍历&104二叉树的最大深度
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
102 0