平衡二叉树-双旋转 左右旋转 ? 在某些情况下,单旋转不能完成平衡二叉树的转换 针对于左右型(LRR,LRL) 右左旋转 针对于右左型(RLL,RLR) ...
分类:
其他好文 时间:
2020-07-29 21:47:19
阅读次数:
60
链接:https://leetcode-cn.com/problems/balanced-binary-tree/ 代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; ...
分类:
其他好文 时间:
2020-07-26 00:05:02
阅读次数:
58
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, 5], ...
分类:
其他好文 时间:
2020-07-12 12:02:11
阅读次数:
59
给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回 true 。 示例 2: 给定二叉树 ...
分类:
其他好文 时间:
2020-07-12 12:00:04
阅读次数:
52
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉 ...
分类:
编程语言 时间:
2020-07-12 11:56:25
阅读次数:
58
问题描述 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 3/ \9 20/ \15 7返回 true 。 示例 2: 给定二叉树 ...
分类:
其他好文 时间:
2020-07-11 12:37:20
阅读次数:
57
##树的相关概念 父节点、子节点、兄弟节点 没有父节点的节点叫根节点,没有子节点的节点叫叶节点 节点的高度:节点到叶子节点的最长路径(边数)(从下往上,根节点高度为0) 节点的深度:根节点到这个节点所经历的边数(从上往下,根节点的深度为0) 节点的层数:节点的深度+1(类比楼房层数,地面是一楼) 树 ...
分类:
其他好文 时间:
2020-07-08 13:35:43
阅读次数:
57
##红黑树的来历 红黑树(Cormen, 2001)是一个平衡二叉树的高效实现。 是一种特殊的二叉查找树,自平衡二叉查找树,为了防止二叉查找树退化成链表的情况。 相对于AVL树(完美平衡二叉树),是一种平衡二叉树,它追求极致的平衡。 ##二叉查找树定义 根节点左边的值都小于根节点的值,右边的值都大于 ...
分类:
其他好文 时间:
2020-07-06 13:20:25
阅读次数:
74
对于一般的二叉搜索树,搜索树结点不同插入次序,将导致不同的深度和平均查找长度ASL。甚至在极端的情况下,二叉搜索树会退化称线性的链表,导致插入和查找的复杂度下降到O(n),所以便提出了平衡二叉树的概念。 基本概念 平衡因子(Balance Factor, BF):BF(T)=hL-hR,其中hL、h ...
分类:
其他好文 时间:
2020-07-05 19:17:26
阅读次数:
68
题目信息 时间: 2019-07- 题目链接:Leetcode tag: 平衡二叉树 深度优先搜索 难易程度:简单 题目描述: 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 示例1: 给定二叉树 [3,9,20,nu ...
分类:
其他好文 时间:
2020-07-05 17:48:08
阅读次数:
71