题目: 有序链表转换二叉搜索树:给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 思路: 看到二叉树要想到用递归的思想,为了找到根节点,使用双指针法,快指针是慢指针速度的二倍,快指针到 ...
分类:
编程语言 时间:
2020-05-03 21:42:05
阅读次数:
94
题目: 解答: 同题目"【树】高度平衡二叉树的判定"。 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 ...
分类:
其他好文 时间:
2020-05-03 16:13:29
阅读次数:
63
1、排序二叉树 排序二叉树是一种特殊的二叉树,可以非常方便的进行检索,它具有如下特点: 若它的左子树不为空,则左子树上所有节点值都小于根节点的值 若它的右子树不为空,则右子树上所有节点值都大于根节点的值 左子树和右子树都一颗排序 排序二叉树评价查找时间为O(logn),极端情况下(所有节点都靠近一侧 ...
分类:
编程语言 时间:
2020-05-03 10:56:12
阅读次数:
74
题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 解法1:逐个判断每个节点 1 # -*- coding:utf-8 -*- 2 # class TreeNode: 3 # def __init__(self, x): 4 # s ...
分类:
其他好文 时间:
2020-04-28 12:29:39
阅读次数:
98
平衡二叉树(AVL 树) 基本介绍: 应用案例 单旋转(左旋转) 代码实现: 应用案例 单旋转(右旋转): 代码实现: 应用案例 双旋转: 前面的两个数列,进行单旋转(即一次旋转)就可以将非平衡二叉树转成平衡二叉树,但是在某些情况下,单旋转不能完成平衡二叉树的转换。比如数列 int[] arr = ...
分类:
其他好文 时间:
2020-04-28 00:44:34
阅读次数:
61
线性表的链式存储表示的特点: 是用一组任意的存储单元存储线性表的数据元素 (这组存储单元可以是连续的,也可以是不连续的)。 因此,为了表示每个数据元素 与其直接后继数据元素 之间的逻辑关系, 对数据元素 来说,除了存储其本身的信息之外, 还需存储一个指示其直接后继的信息(即直接后继的存储位置)。 由 ...
分类:
其他好文 时间:
2020-04-26 11:02:42
阅读次数:
60
树 104.二叉树的最大深度 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { va ...
分类:
其他好文 时间:
2020-04-21 00:21:22
阅读次数:
87
前言 根据插入序列建立二叉平衡树并输出根结点,其实就是考察能否掌握建立二叉平衡树的过程。这题去年有写过,但是一直卡住了,这次终于写出来了,而且真的见识到了一些很 精妙 的操作,不管是调整还是插入过程。 题目描述 An AVL tree is a self balancing binary searc ...
分类:
其他好文 时间:
2020-04-18 13:41:24
阅读次数:
78
1.数字在排序数组中出现的次数 问题描述: 统计一个数字在排序数组中出现的次数。 2.二叉树的深度 问题描述: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 3.平衡二叉树 问题描述: 输入一棵二叉树,判断该二叉树是否是平衡 ...
分类:
其他好文 时间:
2020-04-17 23:52:40
阅读次数:
61
平衡二叉树 LeetCode: "平衡二叉" 题目描述: 给定一个二叉树,判断它是否是高度平衡的二叉树。 示例: 思想: 使用实例域变量记录是否与有不满足平衡的节点出现,使用一次递归即可。 代码 ...
分类:
编程语言 时间:
2020-04-17 11:11:37
阅读次数:
61