当前位置: 首页 > 知识库问答 >
问题:

二叉树属性-平衡

宣星光
2023-03-14

我试图理解二叉树的属性。但有一件事我不确定:

二叉树的dev.表示:

>

如果任意两片树叶的深度差最大为1,则二叉树是平衡的。

我问我这两个定义是否相等,我的意思是定义。1统计Def。2和viceversa?...对我来说似乎是的...但是谁能用例子准确地解释我这个属性的(非)等价?

谢谢,帕特里克

共有1个答案

西门振
2023-03-14

不,这两者并不等同。

    3
   / \
  2   7
 /   / \
1   5   8
   / \   \
  4   6   9

是满足属性2但不满足属性1的树。

然而,属性1意味着属性2。

命题:在根据属性1与n内部节点平衡的二叉树中,所有叶子的深度为

  • kifn=2^k-1
  • kork 1if2^k

证明:(通过对内部节点数的归纳)

对于n=1=2^1-1,在深度1处有一到两片叶子(根在深度0处)。

对于n=2,一个子树有一个内部节点,该子树中的所有叶位于深度2,另一个子树为空或叶位于深度1。

n

如果n是偶数,n=2*m,则两个子树都必须具有m内部节点,并且深度属性由归纳假设保持。

如果n=2*m1为奇数,则一个子树具有m内部节点,另一个子树具有m1

>

  • 如果2^k

    如果m=2^k-1,具有m内部节点的子树仅在深度k处有叶子,并且具有m 1内部节点的子树在深度k 1和可能的深度k

  •  类似资料:
    • 主要内容:二叉排序树转化为平衡二叉树,构建平衡二叉树的代码实现,总结上一节介绍如何使用二叉排序树实现动态 查找表,本节介绍另外一种实现方式—— 平衡二叉树。 平衡二叉树,又称为  AVL 树。实际上就是遵循以下两个特点的二叉树: 每棵子树中的左子树和右子树的深度差不能超过 1; 二叉树中每棵子树都要求是平衡二叉树; 其实就是在二叉树的基础上,若树中每棵子树都满足其左子树和右子树的深度差都不超过 1,则这棵二叉树就是平衡二叉树。 图 1 平衡与不平衡的二叉树及结点的

    • NowCoder 题目描述 平衡二叉树左右子树高度差不超过 1。 解题思路 // java private boolean isBalanced = true; public boolean IsBalanced_Solution(TreeNode root) { height(root); return isBalanced; } private int height(Tre

    • 排序二叉树中存在一个问题就是可能会退化成一个链表,当只有左子树或者右子树有节点的时候,此时排序二叉树就像链表一样,但因为排序二叉树在插入查询的时候还要判断左右子树的问题,这样查询的效率反而变低,从而引出了平衡二叉树 平衡二叉树又称平衡搜索树(Self-balance Binary Search Tree)又称AVL树,同时保证了查询和添加的效率。首先平衡二叉树是一颗排序二叉树,且它是空树或者他的每

    • 在上一节中,我们考虑构建一个二叉搜索树。正如我们所学到的,二叉搜索树的性能可以降级到 $$O(n)$$ 的操作,如 get 和 put ,如果树变得不平衡。在本节中,我们将讨论一种特殊类型的二叉搜索树,它自动确保树始终保持平衡。这棵树被称为 AVL树,以其发明人命名:G.M. Adelson-Velskii 和E.M.Landis。 AVL树实现 Map 抽象数据类型就像一个常规的二叉搜索树,唯一

    • 在我们继续之前,我们来看看执行这个新的平衡因子要求的结果。我们的主张是,通过确保树总是具有 -1,0或1 的平衡因子,我们可以获得更好的操作性能的关键操作。 让我们开始思考这种平衡条件如何改变最坏情况的树。有两种可能性,一个左重树和一个右重树。 如果我们考虑高度0,1,2和3的树,Figure 2 展示了在新规则下可能的最不平衡的左重树。 Figure 2 看树中节点的总数,我们看到对于高度为0的

    • 一、题目 输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1 ,那么它就是一棵平衡二叉树。 二、解题思路 解法一:需要重蟹遍历结点多次的解法 在遍历树的每个结点的时候,调用函数treeDepth得到它的左右子树的深度。如果每个结点的左右子树的深度相差都不超过1 ,按照定义它就是一棵平衡的二叉树。 解法二:每个结点只遍历一次的解法 用后序遍历的方式遍