zoukankan      html  css  js  c++  java
  • leecode第九十八题(验证二叉搜索树)

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        void jiance(TreeNode* root,bool& is_BST,long& temp)
        {
            if(root->left!=NULL)
                jiance(root->left,is_BST,temp);
            
            if(temp<root->val)
                temp=root->val;
            else
                is_BST=false;
                
            if(root->right!=NULL)
                jiance(root->right,is_BST,temp);
        }
        bool isValidBST(TreeNode* root) {
            if(root==NULL)
                return true;
            bool is_BST=true;
            long temp=LONG_MIN;
            jiance(root,is_BST,temp);
            return is_BST;
        }
    };

    分析:

    验证中序遍历为升序即可,只是在边界值有点恶心,我以为空树不算二叉搜索树,但其实算,而且leecode的输入[]和[null]答案居然不一样。最后想吐槽,结构里的val是int型,我设置temp一开始初始化INT_MIN,但是居然有个更小的。。

  • 相关阅读:
    [转] linux 信号量之SIGNAL
    [转] 查看CPU使用率 top命令详解
    shell 脚本编程
    ToggleButton
    MultiAutoCompleteTextView
    AutoCompleteTextView
    IO流总结
    JavaWeb 案例——访问权限控制
    IO流之字符流
    File类
  • 原文地址:https://www.cnblogs.com/CJT-blog/p/10811645.html
Copyright © 2011-2022 走看看