仅供自己学习 思路: 按照题目要求我们需要定义一个head头节点,并且因为树是二叉搜索树,所以要采取中序遍历才能得到从小到大的排序。 按照中序遍历的模板 dfs(root->left); cout<<root->val; dfs(root->right); 同样我们也通过这个模板写DFS,这里因为是 ...
分类:
其他好文 时间:
2021-04-05 12:33:29
阅读次数:
0
如果一个在根节点,另一个在其子树,返回root没毛病。 如果不是同时大于或小于,因为二叉搜索树性质,会分别在两边,返回root没毛病。 如果同时在一边,则当前节点不会是最近公共祖先,往子树递归,没毛病。 *注意要写3个return 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 /** ...
分类:
其他好文 时间:
2021-03-31 11:34:14
阅读次数:
0
leetcode 173. 二叉搜索树迭代器:实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器。 ...
分类:
其他好文 时间:
2021-03-30 13:04:24
阅读次数:
0
##头文件 map:#include unordered_map:#include<unordered_map> ##底层实现 map:内部是红黑树,自动排序,所以默认有序 + 补充:红黑树是非严格平衡二叉搜索树,而AVL是严格平衡二叉搜索树 unordered_map:内部是哈希表,所以默认无序 ...
分类:
编程语言 时间:
2021-03-17 14:26:54
阅读次数:
0
处理了一年的边界问题 #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; #define fi first #define se second #define sz(v) ((int)(v).size()) #d ...
分类:
其他好文 时间:
2021-03-15 11:18:36
阅读次数:
0
问题 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 示例 解答1:递归 class Solution { public: Node* treeToDoublyList(Node* root) { if (!root) retu ...
分类:
其他好文 时间:
2021-03-01 14:06:54
阅读次数:
0
1、平衡二叉树出现的原因 二叉排序树的弊端 数列:1,2,3,4,5,6 创建出来的二叉排序树为: 2、平衡二叉树概念 平衡二叉搜索树 AVL树 保证查询效率最高 一颗空树或者是一颗左右两颗子树的高度差的绝对值不超过1, 并且左右子树分别也是平衡二叉树的树 2.1、二叉树结点 // 树结点 priv ...
分类:
其他好文 时间:
2021-02-20 12:44:09
阅读次数:
0
今天是正月初一,也是只能默默的在这里写博客,情绪烦乱,刷题老是走神,最后决定写点博客来巩固一下之前所学,让自己放几天假,春节的张灯结彩,热闹非凡似乎与我格格不入,让这二叉搜索树陪我熬过去吧,那么我们来看二叉搜索树的ADT。 #ifndef BinarySearchTree_H #define Bin ...
分类:
其他好文 时间:
2021-02-16 11:53:34
阅读次数:
0
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 重点是,如何管理kk的值与最终结果的关系。 /* struct TreeNode { int val; struct TreeNode *left; struct Tre ...
分类:
其他好文 时间:
2021-02-09 12:14:08
阅读次数:
0
剑指 Offer 36. 二叉搜索树与双向链表 Offer_36 题目描述 题解分析 本题考查的是二叉树的中序遍历以及二叉排序树的特征(二叉排序树的中序遍历序列是升序序列) 利用排序二叉树中序遍历的性质,可以设置一个前置指针和当前指针。 再遍历完当前结点的所有左子树后,可以得到一个数据值仅次与当前结 ...
分类:
编程语言 时间:
2021-02-05 10:52:38
阅读次数:
0