zoukankan      html  css  js  c++  java
  • 98. Validate Binary Search Tree

    Given a binary tree, determine if it is a valid binary search tree (BST).

    Assume a BST is defined as follows:

    • The left subtree of a node contains only nodes with keys less than the node's key.
    • The right subtree of a node contains only nodes with keys greater than the node's key.
    • Both the left and right subtrees must also be binary search trees.

    Example 1:

        2
       / 
      1   3
    

    Binary tree [2,1,3], return true.

    Example 2:

        1
       / 
      2   3
    

    Binary tree [1,2,3], return false.

    题目含义:判断一个二叉树是否为二叉搜索树

    思路:按照中序将树转换为数组,然后判断是否为递增

     1     public void inorder(TreeNode root) {
     2         if (root == null) return;
     3         inorder(root.left);
     4         values.add(root.val);
     5         inorder(root.right);
     6     }
     7     
     8     public boolean isValidBST(TreeNode root) {
     9         inorder(root);
    10         for (int i = 0; i < values.size() - 1; i++) {
    11             if (values.get(i) >= values.get(i + 1)) return false;
    12         }
    13         return true;        
    14     }
  • 相关阅读:
    [模板]杜教筛
    [NOIP2014]解方程
    [NOIP2016] 组合数问题
    [HAOI2011] Problem b
    Rmq Problem mex
    [模板]Link-Cut-Tree
    [SDOI2013]森林
    单调队列优化多重背包
    [USACO17JAN]Promotion Counting
    [模板] 点分治
  • 原文地址:https://www.cnblogs.com/wzj4858/p/7715478.html
Copyright © 2011-2022 走看看