zoukankan      html  css  js  c++  java
  • [LeetCode_98]Validate Binary Search Tree

    题目链接

    https://leetcode.com/problems/validate-binary-search-tree/

    题意

    判断给定树是否是BST

    思路

    根据定义判断。递归。

    代码

    class Solution {
    public:
        bool isValidBST(TreeNode* root) {
            if(!root){return true;}
            else{
                return isBST(root)->validBST;
            }
        }
        
    private:
        struct TreeMes{
            bool validBST;
            int max;
            int min;
        };
        
        TreeMes* isBST(TreeNode* root){
            TreeMes *treeMes=new TreeMes;
            if(!root->left&&!root->right){
                treeMes->max=root->val;
                treeMes->min=root->val;
                treeMes->validBST=true;
                return treeMes;
            }
            else if(!root->left){
                TreeMes *rTreeMes=isBST(root->right);
                if(rTreeMes->validBST&&(rTreeMes->min>root->val)){
                    treeMes->min=root->val;
                    treeMes->max=rTreeMes->max;
                    treeMes->validBST=true;
                }
                else{treeMes->validBST=false;}
                delete rTreeMes;
                return treeMes;
            }
            else if(!root->right){
                TreeMes *lTreeMes=isBST(root->left);
                if(lTreeMes->validBST&&(lTreeMes->max<root->val)){
                    treeMes->max=root->val;
                    treeMes->min=lTreeMes->min;
                    treeMes->validBST=true;
                }
                else{treeMes->validBST=false;}
                delete lTreeMes;
                return treeMes;
            }
            else{
                TreeMes *lTreeMes=isBST(root->left);
                TreeMes *rTreeMes=isBST(root->right);
                if(lTreeMes->validBST&&(lTreeMes->max<root->val)&&rTreeMes->validBST&&(rTreeMes->min>root->val)){
                    treeMes->min=lTreeMes->min;
                    treeMes->max=rTreeMes->max;
                    treeMes->validBST=true;
                }
                else{treeMes->validBST=false;}
                delete lTreeMes;
                delete rTreeMes;
                return treeMes;
            }
        }
    };
    
  • 相关阅读:
    ssh 代理详细解释
    c++ extern c
    php 删除换行符
    doxygen 模板
    php 判断字符串
    php 链接 mysql 数据库
    远程桌面管理:tsmmc.msc在xp系统中的使用
    更改Server 2008域用户密码策略
    Windows Server 2008 IIS7部署
    iis6中FTP配置的技巧和细节
  • 原文地址:https://www.cnblogs.com/coding-gaga/p/10316365.html
Copyright © 2011-2022 走看看