-
/**
-
* Definition for binary tree
-
* struct TreeNode {
-
* int val;
-
* TreeNode *left;
-
* TreeNode *right;
-
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
-
* };
-
*/
-
class Solution {
-
public:
-
void traverse(TreeNode *root, vector<int> &vals)
-
{
-
if(NULL==root) return;
-
traverse(root->left,vals);
-
vals.push_back(root->val);
-
traverse(root->right, vals);
-
}
-
bool isValidBST(TreeNode *root) {
-
if(NULL==root) return true;
-
vector<int> vals;
-
traverse(root, vals);
-
for(int i=0;i<vals.size()-1;i++)
-
if(vals[i]>=vals[i+1]) return false;
-
return true;
-
}
-
};