二叉搜索树——98. 验证二叉搜索树
二叉搜索树——98. 验证二叉搜索树
题目:

思路:
二叉搜索树啊,自然而然考虑中序遍历,若真的是二叉搜索树,则为递增序列,反之则不是。
代码:
class Solution {
private:
// 存放二叉搜索树按照中序遍历读取的节点顺序
vector<int> vec;
void traversal(TreeNode* node){
if(node==NULL) return;
traversal(node->left); // 左
vec.push_back(node->val); // 中
traversal(node->right); // 右
}
public:
bool isValidBST(TreeNode* root) {
vec.clear();
// 中序遍历
traversal(root);
// 判断是不是递增序列
for(int i=1; i<vec.size();i++){
// 注意要小于等于,搜索树里不能有相同元素
if(vec[i] <= vec[i-1]) return false;
}
return true;
}
};
Rank:

Tips:
还是要记住这个特点:中序遍历下,输出的二叉搜索树节点的数值是有序序列。这样很多二叉搜索树的问题就有了思路。

浙公网安备 33010602011771号