🔥近津薪荼: [个人主页] 🎬个人专栏: 《近津薪荼的算法日记》 《Linux操作系统及网络基础知识分享》 《c++基础知识详解》 《c语言基础知识详解》 ✨
1.上期参考代码
cpp
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
class Solution {
public:
long prev=LONG_MIN;//要取比int最小值还要小的值
bool isValidBST(TreeNode* root) {
if(root==nullptr)return true;//出口
bool left=isValidBST(root->left);
if(left==false)return false;//剪枝
bool cur=false;
if(root->val>prev)
cur=true;
if(cur==false) return false;//剪枝
prev=root->val;
bool right=isValidBST(root->right);
return left&&right&&cur;
}
};
2.本期知识点导图

3.本期要讲解的题目是
二叉搜索树中第 K 小的元素

要点:
本题延续上期的思路,给大家练习一下剪枝的操作
4.解题
延续上期的思路,这题很简单
无非是中序遍历二叉搜索树,把遍历到的第六个元素返回即可。
代码逻辑:
创建两个全局变量,count与ret,在中序遍历的过程中不断维护
count:初始化:count=k
遍历一次就自减一次,遍历过程中进行逻辑判断,count为0到时候,对应的值就是第k小的值。
问:先count--还是先判断count是否为0?
ret:count==0时,存储要返回的值
全局变量的好处:
- 简化函数头的设计,本题的函数头只有一个参数,且无返回值
- 方便函数逻辑模块化,本题中的遍历逻辑是在类中新建一个成员函数实现的,给其传参即可,复杂的算法可以将一个大问题简化成多个小问题
5.下期要讲解的题目是:
二叉树的所有路径
6.嗟食
如果小编写的内容对佬有帮助,还请大佬点点三连加关注哦 
佬的支持就是我前进的最大动力
~
期待与佬的再次相遇~