leetcode98验证二叉搜索树

Posted lisin-lee-cooper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode98验证二叉搜索树相关的知识,希望对你有一定的参考价值。

一.问题描述

  • 给定一个二叉树,判断其是否是一个有效的二叉搜索树。

  • 假设一个二叉搜索树具有如下特征:

  • 节点的左子树只包含小于当前节点的数。

  • 节点的右子树只包含大于当前节点的数。

  • 所有左子树和右子树自身必须也是二叉搜索树。

  • 示例 1:

  • 输入:

  • 2

  • / \\

  • 1 3

  • 输出: true

  • 示例 2:

  • 输入:

  • 5

  • / \\

  • 1 4

  • / \\

  • 3 6

  • 输出: false

  • 解释: 输入为: [5,1,4,null,null,3,6]。

  • 根节点的值为 5 ,但是其右子节点值为 4 。

思路:中序遍历二叉树,如果后面遍历的数比前面大,则非二叉搜索树

二.示例代码

public static void main(String[] args) {
        TreeNode root = new TreeNode(5);
        TreeNode node1 = new TreeNode(1);
        TreeNode node2 = new TreeNode(9);
        TreeNode node3 = new TreeNode(7);
        TreeNode node4 = new TreeNode(10);
        root.left = node1;
        root.right = node2;
        node2.left = node3;
        node2.right = node4;
        boolean result = isBST(root);
        System.out.println(result);
    }

    static long pre = Long.MIN_VALUE;

    public static boolean isBST(TreeNode root) {
        if (root == null) {
            return true;
        }
        if (!isBST(root.left)) {
            return false;
        }
        if (root.val <= pre) {
            return false;
        }
        pre = root.val;
        return isBST(root.right);
    }

以上是关于leetcode98验证二叉搜索树的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode98. 验证二叉搜索树(递归)

[JavaScript 刷题] 树 - 验证二叉搜索树, leetcode 98

LeetCode:验证二叉搜索树98

LeetCode 98 验证二叉搜索树

LeetCode 98. 验证二叉搜索树

LeetCode 98. 验证二叉搜索树