98. Validate Binary Search Tree
不定期更新leetcode解题java答案。
采用pick one的方式选择题目。
题目要求判断树是否为二叉搜索树。要求为:1、一个节点的左子树的所有节点均小于该节点;2、一个节点的右子树上的所有节点均大于该节点;3、所有节点均满足1,2的条件。
容易想到采用递归的方式依次向下检测。递归需要传递的参数为下一需要检测的节点,以及该节点应满足的上下界的值;此外如果节点为最左侧或最右侧节点,不应检测其下界或上界。
代码如下:
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public boolean isValidBST(TreeNode root) { 12 return root == null ? true : isValidBST(root.left, Integer.MIN_VALUE, root.val, true, false) && isValidBST(root.right, root.val, Integer.MAX_VALUE, false, true); 13 } 14 public boolean isValidBST(TreeNode root, int smallVal, int largeVal, boolean isLeft, boolean isRight){ 15 if(root == null) 16 return true; 17 else if((!isRight && root.val >= largeVal) || (!isLeft && root.val <= smallVal)) 18 return false; 19 else 20 return isValidBST(root.left, smallVal, root.val, isLeft, false) && isValidBST(root.right, root.val, largeVal, false, isRight); 21 } 22 23 }
转载于:https://www.cnblogs.com/zslhq/p/5987973.html
98. Validate Binary Search Tree相关推荐
- LeetCode 98. Validate Binary Search Tree--C++解法--判断是否是BST--递归,迭代做法,中序遍历
LeetCode 98. Validate Binary Search Tree–C++解法–判断是否是BST–递归,迭代做法,中序遍历 LeetCode题解专栏:LeetCode题解 LeetCod ...
- [CareerCup] 4.5 Validate Binary Search Tree 验证二叉搜索树
4.5 Implement a function to check if a binary tree is a binary search tree. LeetCode上的原题,请参见我之前的博客Va ...
- LeetCode 之 JavaScript 解答第98题 —— 验证二叉搜索树(Validate Binary Search Tree)
Time:2019/4/24 Title: Vaildata Binary Search Tree Difficulty: Medium Author: 小鹿 题目:Vaildata Binary S ...
- LeetCode:Validate Binary Search Tree
题目链接 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defin ...
- LeetCode Validate Binary Search Tree(dfs)
问题:判断树是否是合法的二叉搜索树 思路: 1.在dfs时,判断当前结点是否大于左子树的最大值,小于右子树的最小值.这是一种思路 2.另外一个思路是在中序遍历时,用个变量记录当前结点的前驱结点,再判断 ...
- 098 Validate Binary Search Tree 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树. 一个二叉搜索树有如下定义: 左子树只包含小于当前节点的数. 右子树只包含大于当前节点的数. 所有子树自身必须也是二叉搜索树. ...
- LeetCode --- Validate Binary Search Tree
题目链接 判断一颗二叉树是否是二叉搜索树(二叉排序树),也就是BST 如果该二叉树是BST, 那么对其中序遍历,所得序列一定是单调递增的(不考虑有重复数值的情况) 附上代码: 1 /** 2 * De ...
- 3th Validate Binary Search Tree
用递归做得,遇到的坑是用cygwin带的gcc编译,总是遇到各种莫名其妙的段溢出...珍爱生命,远离cygwin.. #include "stdio.h" #include &qu ...
- 判断一颗二叉树是否为二叉搜索树(Validate Binary Search Tree)
一.学习要点: 利用二叉搜索树的中序遍历为递增数组的性质: 二.代码: void middle(node* root,vector<int>& inorder) {if(root= ...
最新文章
- eruke注册中心搭建
- JMeter java.net.URISyntaxException:Illegalcharacterinquery解决方案
- 主机信息收集技术 -Nmap
- 匿名函数python_基于python内置函数与匿名函数详解
- dijkstra算法代码_数据科学家需要知道的5种图算法(附代码)
- 初识Xen-CentOS5.8_x64位系统安装xen文档(-)
- 晶体封装越小esr越大_二轮复习分子晶体与原子晶体
- 74ls90设计十进制计数器电路图_利用555与74ls90制作电子秒表
- 异同点 模拟退火 遗传算法 邻域搜索_遗传算法与模拟退火算法比较
- 张晓霞oracle,《Oracle应用开发》实验指导书 - 图文
- 第五篇:你“ 看不见 ” 的隐式转换
- EXCEL 2010学习笔记—— 动态图表
- 【手掌识别】基于matlab形态学手掌长宽检测【含Matlab源码 1382期】
- 欢迎使用CSDN-markdown编辑器wewqewqew
- Animation动画详解
- 简述变分法在泛函极值问题中的应用
- 路由器 设置DNS 域名拦截 重定向
- android edittext底线,Android定制自己的EditText轻松改变底线颜色
- 阿里云张振尧:阿里云边缘云驱动5G时代行业新价值
- php oop java oop_php oop的作用
热门文章
- 金融计算器 npv_一个工具箱 之 净现值(NPV)计算器
- java 按键消息监听器用法,Java命令行中的键监听器
- tensorflow生成图片标签_Tensorboard高维向量可视化 + 解决标签和图片不显示BUG
- 单位内部一个计算机系统属于,2012年计算机一级MsOffice第五十九套练习题及答案解析...
- lottie动画_Lottie内存泄漏问题的定位与分析
- 三维重建 几何方法 深度学习_Occupancy Networks:基于学习函数空间的三维重建表示方法...
- 怎样把项目上传服务器,怎样将项目上传云服务器
- mysql系统文件路径修改不了_MySQL数据库改路径后没办法启动的问题
- matlab算线性方程解,MATLAB计算方法3解线性方程组计算解法.pptx
- 垃圾,还用汇编写单片机程序?