二叉搜索树
文章平均质量分 82
algsup
这个作者很懒,什么都没留下…
展开
-
[二叉搜索树]leetcode235:二叉搜索树的最近公共祖先(easy)
题目:题解:1)从根节点遍历二叉搜索树2)若节点pq都在右子树上,则以右孩子节点为根节点重复第1步3)若节点pq都在左子树上,则以左孩子节点为根节点重复第1步4)若节点pq不同时在一颗子树上,则就会出现下图的三种情况了:pq位于左右子树中,则当前根节点就是最近公共祖先;pq中一个节点为根节点,另一个为子结点,那么以p或q中的一个根节点就是最近公共祖先了代码如下:class S...原创 2019-09-01 08:57:58 · 253 阅读 · 0 评论 -
[二叉搜索树]leetcode98:验证二叉搜索树(medium)
题目:题解:二叉搜索树也称二叉排序树,性质如下:1)若这棵树的左子树不为空,那么左子树上的所有节点的值都必须小于它的根节点的值2)若这棵树的右子树不为空,那么右子树上的所有节点的值都必须大于它的根节点的值3)它的左右子树也是二叉排序树对于我们使用递归的方式解题,更加加深对递归的理解,这里我们把递归当作一个栈(当然递归调用的确实是系统栈),先递归将左子树的所有节点压入栈中,直到遇到...原创 2019-08-30 20:38:23 · 261 阅读 · 0 评论 -
leetcode刷题总结之二叉搜索树
前言:终于放寒假了,在家休息几天然后查了下考研学校后,打算开始写总结了。原因很简单,刷过的好多题都忘了,打算二刷顺便写下总结。引用名言:“学而不思则罔,思而不学则殆。”所以在做题的同时,我们需要更多的思考,这样才能把知识完全学懂,今日总结的主题是《二叉搜索树》。二叉搜索树的定义及性质:二叉搜索树(英语:Binary Search Tree),也称为二叉查找树、有序二叉树(ordered b...原创 2020-01-13 22:20:25 · 1008 阅读 · 0 评论 -
[二叉树][中序遍历]leetcode530:二叉搜索树的最小绝对差(easy)
题目:题解:利用中序遍历将二叉搜索树转换为一个升序数组,然后遍历这个数组,计算差的绝对值。代码如下:class Solution {public: //题解:中序遍历求二叉树的数组,然后依次算两个节点差的绝对值 int getMinimumDifference(TreeNode* root) { vector<int> nums; ...原创 2020-01-10 22:56:45 · 297 阅读 · 0 评论 -
[中序遍历]leetcode501:二叉搜索树中的众数(easy)
题目:题解:思路:二叉搜索树的中序遍历是一个升序序列,逐个比对当前结点(root)值与前驱结点(pre)值。更新当前节点值出现次数(curTimes,初始化为1)及最大出现次数(maxTimes),更新规则:若curTimes=maxTimes,将root->val添加到结果向量(res)中;若curTimes>maxTimes,清空res,将root->val添加到r...原创 2020-01-08 19:30:53 · 261 阅读 · 0 评论 -
[dfs][bfs]leetcode449:序列化和反序列化二叉搜索树(medium)
题目:题解:使用先序遍历(根左右)实现二叉树的序列化和反序列化,这里我们使用stringstream来存放字符串,因为这样可实现字符串的快速在尾部添加,以及反序列化时默认使用空格分割字符串。代码如下:class Codec {public: TreeNode *node; // Encodes a tree to a single string. //...原创 2020-01-07 23:36:00 · 254 阅读 · 0 评论 -
[二叉搜索树]leetcode230:二叉树中的第K小的元素(medium)
题目:题解:利用二叉树的中序遍历将二叉搜索树转换为数组,直接返回数组的第k个元素就好了。因为二叉搜索树的所有节点值映射到一条直线上就一个升序的数组,根节点就是其左子节点值与右子节点值的中位数,所以我们利用中序遍历将二叉搜索树转换为数组,然后返回数组中的第k个元素就行了。代码如下:class Solution {public: int kthSmallest(TreeNode...原创 2019-09-28 11:34:01 · 223 阅读 · 0 评论