Question 98 – Validate Binary Search Tree
判断一棵树是不是二分查找树。
算法
用DFS算法。每次递归时传递一个最大值和一个最小值。对于当前节点左边的树有一个最大值,右边的树有一个最小值。
Code
class Solution {
public:
bool isValidBST(TreeNode* root) {
return isvalid(root, LONG_LONG_MAX, LONG_LONG_MIN);
}
bool isvalid(TreeNode* nowroot, long long max, long long min){
if(nowroot==NULL)
return true;
if(nowroot->val>=max || nowroot->val<=min)
return false;
return isvalid(nowroot->left, nowroot->val, min) && isvalid(nowroot->right, max, nowroot->val);
}
};