98 - Validate Binary Search Tree
C++
class Solution {
public:
TreeNode* prev;
bool isValidBST(TreeNode* root) {
prev = nullptr;
return dfs(root);
}
bool dfs(TreeNode* root) {
if (!root) return true;
if (!dfs(root->left)) return false;
if (prev && prev->val >= root->val) return false;
prev = root;
if (!dfs(root->right)) return false;
return true;
}
};
JAVA
class Solution {
private Integer prev;
public boolean isValidBST(TreeNode root) {
prev = null;
return dfs(root);
}
private boolean dfs(TreeNode root) {
if (root == null) {
return true;
}
if (!dfs(root.left)) {
return false;
}
if (prev != null && prev >= root.val) {
return false;
}
prev = root.val;
if (!dfs(root.right)) {
return false;
}
return true;
}
}
Comments
Post a Comment