今天是LeetCode专题第61篇文章,我们一起来看的是LeetCode95题,Unique Binary Search Trees II(不同的二叉搜索树II)。 这道题的官方难度是Medium,点赞2298,反对160,通过率40.5%。我也仿照steam当中游戏评论的分级,给LeetCode中 ...
分类:
其他好文 时间:
2020-09-14 18:50:19
阅读次数:
39
闲的没事翻新题,突然想起笛卡尔树还没学,于是写了写笛卡尔树的模板题。 P5854 【模板】笛卡尔树 题意 给一个排列p1pn,i号点权值为pi,要求建一棵以编号为关键字的二叉搜索树(中序序列为1n),且以权值为关键字的小根堆。 n ? 1e7 思路分析 难度在于O(n)建树。但既然编号是连续的,那么 ...
分类:
其他好文 时间:
2020-09-08 20:42:17
阅读次数:
37
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 Python # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.r ...
分类:
其他好文 时间:
2020-09-02 16:53:04
阅读次数:
42
二叉搜索树的性质:(1)root为空;(2)或者root左子树中所有元素都小于root->val,root右子树中所有元素都大于root->val, 且root的左右子树也是二叉搜索树。 所以要找两个节点的最近公共祖先,有三种情况: (1)p,q都在root的左子树中,则我们到root的左子树去寻找 ...
分类:
其他好文 时间:
2020-08-26 18:35:35
阅读次数:
47
上节回顾 上一章我们介绍了二叉树,二叉搜索树相关的一些知识。 当一个二叉搜索树是一个满二叉树,或者是完美二叉树的时候可以计算一下二叉搜索树的查找,插入,删除的时间复杂度。 从代码来看它们的时间复杂度都是和树的高度相关的。 满二叉树的高度是$log_2(n + 1)$,完美二叉树的高度是$floor( ...
分类:
其他好文 时间:
2020-08-17 17:10:18
阅读次数:
56
题目描述: 给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。 例如, 给定二叉搜索树: 4 / \ 2 7 / \ 1 3 和值: 2 你应该返回如下子树: 2 / \ 1 3 来源:力扣(Leet ...
分类:
其他好文 时间:
2020-08-17 16:46:20
阅读次数:
54
99. 恢复二叉搜索树 题目来源:力扣(LeetCode)https://leetcode-cn.com/problems/recover-binary-search-tree 题目 二叉搜索树中的两个节点被错误地交换。 请在不改变其结构的情况下,恢复这棵树。 示例 1: 输入: [1,3,null ...
分类:
编程语言 时间:
2020-08-08 21:20:59
阅读次数:
83
什么是数据结构? 数据结构是计算机存储、组织数据的方式。 为什么需要数据结构? 数据是程序的核心要素,因此数据结构的价值不言而喻。在不同的场景下,数据需要以特定的方式存储,我们有不同的数据结构可以满足我们的需求。 8中常用的数据结构 数组、栈、队列、链表、图、树、前缀树、哈希表 1.数组 例如上图展 ...
分类:
其他好文 时间:
2020-08-04 09:49:12
阅读次数:
92
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树: 5 / \ 2 6 / \ 1 3 示例 1: 输入: [1,6,3,2,5] 输出: false 示例 2: 输入: [1 ...
分类:
其他好文 时间:
2020-08-03 00:51:43
阅读次数:
106
本题要求实现给定二叉搜索树的5种常用操作。 函数接口定义: BinTree Insert( BinTree BST, ElementType X ); BinTree Delete( BinTree BST, ElementType X ); Position Find( BinTree BST, ...
分类:
其他好文 时间:
2020-08-02 17:35:53
阅读次数:
103