wordpress 搜索 分类北京云无限优化
前言
题目: 98. 验证二叉搜索树
文档: 代码随想录——验证二叉搜索树
编程语言: C++
解题状态: 对中序遍历理解不到位
思路
了解了中序遍历会返回一个有序数组后,本题就可以迎刃而解。只需要判断,返回的数组是不是递增数组就好。
代码
/*** 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 {
private:vector<int> vec;void traversal(TreeNode* root) {if (!root) return;traversal(root -> left);vec.push_back(root -> val);traversal(root -> 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;}
};