关于#算法#的问题:leetcode 98验证二叉搜索树,我的思路为什么这个测试案例不通过(语言-java)

leetcode 98验证二叉搜索树,我的思路为什么这个测试案例不通过?

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public boolean isValidBST(TreeNode root) {
        if(root == null)
            return true;
        if(root.left != null && root.left.val >= root.val) {
            return false;
        }
        if(root.right != null && root.right.val <= root.val) {
            return false;
        }
        return isValidBST(root.left) && isValidBST(root.right);
    }
}

img

因为二叉搜索树是 左子数 小于根节点 小于右子树; 而你这个测试用例中,根节点为5 大于右子树中的节点3;所以出现问题了;
具体代码可以看

https://blog.csdn.net/weixin_45986454/article/details/110767334?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167879921616800211564046%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167879921616800211564046&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-110767334-null-null.blog_rank_default&utm_term=bst&spm=1018.2226.3001.4450