zoukankan      html  css  js  c++  java
  • 程序员面试金典--检查是否为BST

    程序员面试金典--检查是否为BST

    题目描述

    请实现一个函数,检查一棵二叉树是否为二叉查找树。

    给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树。

    /*
    struct TreeNode {
        int val;
        struct TreeNode *left;
        struct TreeNode *right;
        TreeNode(int x) :
                val(x), left(NULL), right(NULL) {
        }
    };*/
    
    class Checker {
    public:
        bool flag; 
        
        int Get(TreeNode* rt){
            if(rt->left== NULL && rt->right==NULL){
                return rt->val; 
            }
            int ans = rt->val; 
            if(rt->left){
                int lr = Get(rt->left); 
                if(lr > rt->val){
                    flag = false; 
                }
                ans = max(ans, lr); 
            }
            
            if(rt->right){
                int rg = Get(rt->right); 
                if(rt->val > rg){
                    flag = false; 
                }
                ans = max(ans, rg); 
            } 
            return ans; 
        }
        
        bool checkBST(TreeNode* root) {
            // write code here 
            if(root == NULL){
                return true; 
            }
            flag = true; 
            Get(root); 
            return flag; 
            
        }
    };
    

      

  • 相关阅读:
    websocket介绍
    阿里支付接口
    王爽 汇编 检测点 14.2
    如何用汇编写出一个心形图像
    王爽 汇编 实验12
    王爽 汇编 实验11
    王爽 汇编 实验10
    王爽汇编 检测点10.5
    二元选择排序
    螺旋矩阵
  • 原文地址:https://www.cnblogs.com/zhang-yd/p/7137258.html
Copyright © 2011-2022 走看看