T1:leetcode.700 二叉搜索树中的搜索
![image-20220720081215620](https://i-blog.csdnimg.cn/blog_migrate/db5de8dc2f7fe65663d95f7b699b015d.png)
class Solution {
public:
TreeNode* searchBST(TreeNode* root, int val) {
if (root == nullptr) return nullptr;
if (val < root->val) return searchBST(root->left, val);
if (val > root->val) return searchBST(root->right, val);
return root;
}
};
T2: leetcode. 230 二叉搜索树中第K小的元素
![image-20220720081627797](https://i-blog.csdnimg.cn/blog_migrate/1a8927b36738e36d64568721c764baae.png)
class Solution {
public:
vector<int> vec;
void traversal(TreeNode* node) {
if (node == nullptr) return;
vec.push_back(node->val);
traversal(node->left);
traversal(node->right);
}
int kthSmallest(TreeNode* root, int k) {
traversal(root);
sort(vec.begin(), vec.end());
int res = vec[k-1];
return res;
}
};
class Solution {
public:
int res=-1;
void help(TreeNode* root,int &k){
if(root==NULL) return ;
help(root->left,k);
k--;
if(k==0){
res=root->val;
return ;
}
help(root->right,k);
}
int kthSmallest(TreeNode* root, int k) {
help(root,k);
return res;
}
};