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

    最简单的想法,中序遍历二叉树:

    • 递归中序遍历二叉树,得到一个中序遍历的序列
    • 判断这个序列是不是有序
    class Solution {
    public:
        void midTree(TreeNode * root, vector<int> & list)
        {
            if(root->left==NULL&&root->right==NULL)
            {
                list.push_back(root->val);
                return;
            }
             if(root->left)   
            midTree(root->left,list);
            list.push_back(root->val);
            if(root->right)
            midTree(root->right,list);
            
        }
        bool isValidBST(TreeNode* root) {
            vector<int> list;
            if(root==NULL)
                return true;
            midTree(root,list);
            
            for(int i=0;i<list.size()-1;i++)
            {
                cout<<list[i]<<endl;
                if(list[i+1]<=list[i])
                    return false;
            }
            return true;
        }
    };

    或者直接判断:

    • 中序遍历,后面的节点要比前面遍历的节点值大
    class Solution {
        // make sure it meets the BST not only at this level,
        // but also previous level
        // in-order access could produce a ascending order list
        // DFS
        bool helper(TreeNode * root) {
            if (root == NULL) {
                return true;
            }
            
            if (!helper(root->left)) {
                return false;
            }
            
            if (prev != NULL && prev->val >= root->val) {
                return false;
            }
            
            prev = root;
            
            return helper(root->right);
        }
    public:
        TreeNode* prev = NULL;
        bool isValidBST(TreeNode* root) {
            return helper(root);
        }
    };
    

      

  • 相关阅读:
    c# netcore 发送http请求并接收返回数据
    CentOS7 nginx安装与卸载
    c# 取出特定标签的内容 去除html标签
    dotnet运行项目
    hangfire自定义访问api接口
    10万个数中取最大的10个数
    指定的服务已标记为删除
    gitlab-配置邮件
    gitlab-centos的安装
    ansible-任务控制tags
  • 原文地址:https://www.cnblogs.com/fanhaha/p/7348446.html
Copyright © 2011-2022 走看看