zoukankan      html  css  js  c++  java
  • 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.
    /**
     * Definition for binary tree
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        bool isValidBST(TreeNode *root) 
        {
            return check(root,false,0,false,0);
        }
        bool check(TreeNode* root,bool hasmax,int max,bool hasmin,int min)
        {
            if(root==NULL) return true;
            if(hasmax && root->val>max)  return false;
            if(hasmin && root->val<min)  return false;
            return check(root->left,true,root->val-1,hasmin,min)
                && check(root->right,hasmax,max,true,root->val+1);
        }
    };
  • 相关阅读:
    半截水晶头线接激活本地虚拟网卡
    快捷键
    嵌入式系统原理与应用技术(第三版)-读书笔记
    嵌入式基本常识(一)
    PWM输出
    ARM-GPIO
    POI使用
    oracle常见命令
    JS获取contextPath的方法
    JPA自动生成表
  • 原文地址:https://www.cnblogs.com/erictanghu/p/3759583.html
Copyright © 2011-2022 走看看