二叉搜索树

就是中间节点会大于所有左子树,会小于全部右子树。
中序就是有顺序的排列。

做过的二叉搜索树

二叉搜索树中第 K 小的元素

二叉搜索树中第 K 小的元素(20 分钟) —-中等—二叉树
01 推荐的题,学习了下二叉树,知道了中序遍历是有顺序的,很棒。
image.png
换了下写法,其实差别不大
image.png
!!!!

不同的二叉搜索树

不同的二叉搜索树(30 分钟)—中等—递归
主要是学习了什么是二叉搜索树
而且第一次遇到这种动态规划是需要递归的,不太敢写,其实会了就很简单
image.png

fn = f0fn-1+f1fn-2+…+fn-1*f0;

这一题有公式,叫卡塔尔数,直接公式也可以的。

不同的二叉搜索树 II

不同的二叉搜索树 II(30 分钟)—中等—递归
算法是同一个算法,还行吧
image.png

验证二叉搜索树

验证二叉搜索树(15 分钟)—简单—递归
简直惨,用的是中序是有顺序的,过是过了,跟没过没区别
image.png
在原答案上不断优化,其实就是中序有顺序,非常优秀啊
image.png
其实递归也不错,就是得保存上边界和下边届。好难理解,再写一遍也要写好久啊,太难了。

二叉搜索树迭代器

二叉搜索树迭代器(5 分钟)—中等—递归
这道题有点难度的,我没满足空间的要求,莫里斯循环可能可以解
得再看下了,暂时绕过了。

二叉搜索树中的搜索

二叉搜索树中的搜索(2 分钟)—简单—递归
image.png
可以不用递归全的,虽然我做了保护,但还是多了些,直接判断然后选择走左树还是右树就好了。

二叉搜索树中的插入操作

(5 分钟)—中等—递归
非常简单的题目,二叉搜索树感觉没啥了
image.png

删除二叉搜索树中的节点

(30 分钟)—中等—递归
执行时间超过 27%;内存消耗超过 50%
有点难的,就是只有左或者右的时候用左或者右替换,没有子就直接删。都有的话,选择右子树的最左边或者左子树的最右边。这个得记住了这种方案。

二叉搜索树的最近公共祖先

(10 分钟)—简单—搜索树
执行时间超过 72%;内存消耗超过 12%
根据特性,大于两个树找左侧,小于两个数找右侧,很简单


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 981909093@qq.com

文章标题:二叉搜索树

文章字数:652

本文作者:泽鹿

发布时间:2019-08-29, 17:23:01

最后更新:2019-09-09, 15:15:17

原始链接:http://panyifei.github.io/2019/08/29/算法/leetcode/二叉搜索树/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏