LeetCode 98 验证二叉搜索树
最开始想的方法用一个vector存下这颗树的中序遍历,然后看这个vector是否严格升序。这里空间复杂度高了,实际上在递归遍历
二叉树的时候,设定好每个节点的上界和下界,在界限内就ok了,正常递归就可以了。
AC代码:
class Solution { public: // 加一个界限 bool isValidBST(TreeNode* root) { return isValidBST(root, LONG_MIN, LONG_MAX); } bool isValidBST(TreeNode *root, long min, long max) { if (!root) return true; if (root->val <= min || root->val >= max) return false; return isValidBST(root->left, min, root->val) && isValidBST(root->right, root->val, max); } };