98. 验证二叉搜索树(高频题)

98. 验证二叉搜索树

解题思路

中序遍历时,判断当前节点是否大于中序遍历的前一个节点,如果大于,说明满足 BST,继续遍历;否则直接返回 false。

代码

class Solution {
    long pre = Long.MIN_VALUE;
    public boolean isValidBST(TreeNode root) {
        if (root == null) {
            return true;
        }
        // 访问左子树
        boolean l=isValidBST(root.left);
        if (!l) {
            return false;
        }
        // 访问当前节点:如果当前节点小于等于中序遍历的前一个节点,说明不满足BST,返回 false;否则继续遍历。
        if (root.val <= pre) {
            return false;
        }
        pre = root.val;
        // 访问右子树
        return isValidBST(root.right);
    }
}
上一篇:不允许出现任何魔法值(即未经定义的常量)直接出现在代码中?


下一篇:C#读写EXCEL单元格的问题