96. 不同的二叉搜索树 自己用dp写的哈哈哈不是很整洁 class Solution { public int numTrees(int n) { int[] res = new int[n + 1]; if(n == 1)return 1; if(n == 2)return 2; res[0] ...
分类:
其他好文 时间:
2020-07-15 23:10:11
阅读次数:
58
(熟练!重要!)二叉搜索树 BST ##题目大意 判断给定序列是否是一个BST或镜像BST树的先序遍历序列,如果是则输出该树的后序遍历序列。 ##思路 根据给定序列创建BST树,求出它的先序遍历和镜像树的先序遍历(即原树遍历时按照根->右->左),与原序列比较。 ##AC代码 #define _CR ...
分类:
其他好文 时间:
2020-07-14 11:52:38
阅读次数:
62
问题描述 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3 来源:力扣(LeetCo ...
分类:
其他好文 时间:
2020-07-13 15:19:18
阅读次数:
63
501. 二叉搜索树中的众数 描述: 思路:中序遍历。 503. 下一个更大元素 II 描述: 思路:单调栈。 506. 相对名次 描述: 思路:先拍戏。再替换。 508. 出现次数最多的子树元素和 描述: 思路:后序遍历。否则叶子节点就遍历了很多次。通过hash存《和,次数》 513. 找树左下角 ...
分类:
其他好文 时间:
2020-07-13 13:31:19
阅读次数:
83
给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定的有序链表: [-10, -3, 0, 5, 9], 一个可能的答案是:[0, -3, 9, -10, null, 5], ...
分类:
其他好文 时间:
2020-07-12 12:02:11
阅读次数:
59
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉 ...
分类:
编程语言 时间:
2020-07-12 11:56:25
阅读次数:
58
题目: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。 要求不能创建任何新的节点,只能调整树中节点指针的指向。我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。“he ...
分类:
编程语言 时间:
2020-07-11 00:26:16
阅读次数:
74
#高级搜索树 ##伸展树 逐层伸展 宽松平横 ###局部性 Locality: 刚被访问过的数据,极有可能很快地再次被访问 >信息处理中常见 //BST BST:刚刚被访问过的节点,极有可能很快的再次被访问 下一将要访问的节点,极有可能就在刚被访问过的节点的附近 连续的m次 查找(m >> n =| ...
分类:
其他好文 时间:
2020-07-10 09:52:47
阅读次数:
62
给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。 例如: 输入: 原始二叉搜索树: 5 / \ 2 13 输出: 转换为累加树: 18 / \ 20 13 O(n) 思路:反序中序遍 ...
分类:
其他好文 时间:
2020-07-09 22:05:47
阅读次数:
73
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 方法一:递归分治 根据二叉搜索树的定义,可以通过递归,判断所有子树的 正确性 (即其后序遍历是否满足二叉搜索树的定义) ,若所有子树都正确,则此序列为 ...
分类:
其他好文 时间:
2020-07-08 15:10:32
阅读次数:
50