16.检查是否为BST

题目描述

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

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

import java.util.*;

/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;
    public TreeNode(int val) {
        this.val = val;
    }
}*/
public class Checker {
    public boolean checkBST(TreeNode root) {
        if(root==null) return true;
        boolean b1=checkBST(root.left);
        boolean b2= checkBST(root.right);
        if(b1 && b2 ){
            if(root.left!=null && root.left.val>root.val)
                return false;
            if(root.right!=null && root.right.val<root.val)
                return false;
            return true;
        }else
            return false;
    }
}

  

时间: 2024-10-20 23:11:34

16.检查是否为BST的相关文章

检查是否为BST

//判断二叉树是否是平衡搜索树 //中序遍历判断即可 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Checker { public: bool checkBST(TreeNode* root) { stack<TreeNode*> s; TreeNode *

ajax上传文件,并检查文件类型、检查文件大小

1.使用ajaxfileupload.js的插件,但是对插件做了一处修改,才能够正常使用 修改的部分如下: 1 2 uploadHttpData: function (r, type) { 3 var data = !type; 4 data = type == "xml" || data ? r.responseXML : r.responseText; // If the type is "script", eval it in global context 5

JAVA BST的实现

花了几个小时,终于实现了BST,虽然比较简单,但感觉还是不错. 1 public class BinarySearchTree { 2 TreeNode rootNode=null; 3 private int size=0; 4 public BinarySearchTree() 5 {} 6 public BinarySearchTree(int [] values) 7 { 8 for(int i=0;i<values.length;i++) 9 { 10 insert(values[i]

centos 6.2 部署pptp服务器

一.系统环境说明 [[email protected] ~]# uname -a Linux cdit-00007b48 2.6.32-220.17.1.el6.x86_64 #1 SMP Wed May 16 00:01:37 BST 2012 x86_64 x86_64 x86_64 GNU/Linux [[email protected] ~]# cat /etc/issue CentOS release 6.2 (Final)Kernel \r on an \m 二.系统环境检查,查看是

二叉查找树(Binary Sort Tree)(转)

二叉查找树(Binary Sort Tree) 我们之前所学到的列表,栈等都是一种线性的数据结构,今天我们将学习计算机中经常用到的一种非线性的数据结构--树(Tree),由于其存储的所有元素之间具有明显的层次特性,因此常被用来存储具有层级关系的数据,比如文件系统中的文件:也会被用来存储有序列表等. 在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根(root).每一个结点可以有多个后件,称为该结点的子结点.没有后件的结点称为叶子结点.一个结点所拥有

从PDF中提取信息----PDFMiner

今天由于某种原因需要将pdf中的文本提取出来,就去搜了下资料,发现PDFMiner是针对 内容提取的,虽然最后发现pdf里面的文本全都是图片,就没整成功,不过试了个文本可复制的 那种pdf文件,发现还是蛮好用的. PDFMiner----python的解析器和分析器 1.官方文档:http://www.unixuser.org/~euske/python/pdfminer/index.html 2.特征 完全使用python编写. (适用于2.4或更新版本) 解析,分析,并转换成PDF文档. P

第一个app-进阶:1、让EditText屏蔽软键盘仍能光标闪动:2、EditText 的inputType参数类型(密码方式-隐藏显示、只允许输入数字等等)

EditText屏蔽软键盘后,光标消失问题 开始我有个需求:屏蔽系统软键盘 于是找到并使用这个方法: //edit_text1.setInputType(InputType.TYPE_NULL); //屏蔽软键盘弹出//edit_text2.setInputType(InputType.TYPE_NULL); //屏蔽软键盘弹出//edit_text3.setInputType(InputType.TYPE_NULL); //屏蔽软键盘弹出 让三个EditText都成功地没有软键盘弹出. 后来我

73条日常shell命令汇总,总有一条你需要!

1.检查远程端口是否对bash开放: echo >/dev/tcp/8.8.8.8/53 && echo "open" 2.让进程转入后台: Ctrl + z 3.将进程转到前台: fg 4.产生随机的十六进制数,其中n是字符数: openssl rand -hex n 5.在当前shell里执行一个文件里的命令: source /home/user/file.name 6.截取前5个字符: ${variable:0:5} 7.SSH debug 模式: ssh

Linux机器24项安全合规设置

工作的一些内容,这是中国移动集团当前linux机器安全合规标准,找了点时间将其归类,并查了一些资料,每项配置是什么意思,不仅要知其然,还要知其所以然.好记性不如烂笔头. 1.  检查FTP配置-限制用户FTP登录 控制FTP进程缺省访问权限,当通过FTP服务创建新文件或目录时应屏蔽掉新文件或目录不应有的访问允许权限. 操作: (1)vsftp: # vi /etc/vsftp/vsftpd.conf 手动将userlist_enable改为yes //限制/etc/vsftpd/user_lis