leetcode

来源:互联网 发布:正当防卫3优化补丁 编辑:程序博客网 时间:2024/06/07 03:29

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);    }};