不定期更新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相关推荐

  1. LeetCode 98. Validate Binary Search Tree--C++解法--判断是否是BST--递归,迭代做法,中序遍历

    LeetCode 98. Validate Binary Search Tree–C++解法–判断是否是BST–递归,迭代做法,中序遍历 LeetCode题解专栏:LeetCode题解 LeetCod ...

  2. [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 ...

  3. LeetCode 之 JavaScript 解答第98题 —— 验证二叉搜索树(Validate Binary Search Tree)

    Time:2019/4/24 Title: Vaildata Binary Search Tree Difficulty: Medium Author: 小鹿 题目:Vaildata Binary S ...

  4. LeetCode:Validate Binary Search Tree

    题目链接 Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defin ...

  5. LeetCode Validate Binary Search Tree(dfs)

    问题:判断树是否是合法的二叉搜索树 思路: 1.在dfs时,判断当前结点是否大于左子树的最大值,小于右子树的最小值.这是一种思路 2.另外一个思路是在中序遍历时,用个变量记录当前结点的前驱结点,再判断 ...

  6. 098 Validate Binary Search Tree 验证二叉搜索树

    给定一个二叉树,判断其是否是一个有效的二叉搜索树. 一个二叉搜索树有如下定义:     左子树只包含小于当前节点的数.     右子树只包含大于当前节点的数.     所有子树自身必须也是二叉搜索树. ...

  7. LeetCode --- Validate Binary Search Tree

    题目链接 判断一颗二叉树是否是二叉搜索树(二叉排序树),也就是BST 如果该二叉树是BST, 那么对其中序遍历,所得序列一定是单调递增的(不考虑有重复数值的情况) 附上代码: 1 /** 2 * De ...

  8. 3th Validate Binary Search Tree

    用递归做得,遇到的坑是用cygwin带的gcc编译,总是遇到各种莫名其妙的段溢出...珍爱生命,远离cygwin.. #include "stdio.h" #include &qu ...

  9. 判断一颗二叉树是否为二叉搜索树(Validate Binary Search Tree)

    一.学习要点: 利用二叉搜索树的中序遍历为递增数组的性质: 二.代码: void middle(node* root,vector<int>& inorder) {if(root= ...

最新文章

  1. eruke注册中心搭建
  2. JMeter java.net.URISyntaxException:Illegalcharacterinquery解决方案
  3. 主机信息收集技术 -Nmap
  4. 匿名函数python_基于python内置函数与匿名函数详解
  5. dijkstra算法代码_数据科学家需要知道的5种图算法(附代码)
  6. 初识Xen-CentOS5.8_x64位系统安装xen文档(-)
  7. 晶体封装越小esr越大_二轮复习分子晶体与原子晶体
  8. 74ls90设计十进制计数器电路图_利用555与74ls90制作电子秒表
  9. 异同点 模拟退火 遗传算法 邻域搜索_遗传算法与模拟退火算法比较
  10. 张晓霞oracle,《Oracle应用开发》实验指导书 - 图文
  11. 第五篇:你“ 看不见 ” 的隐式转换
  12. EXCEL 2010学习笔记—— 动态图表
  13. 【手掌识别】基于matlab形态学手掌长宽检测【含Matlab源码 1382期】
  14. 欢迎使用CSDN-markdown编辑器wewqewqew
  15. Animation动画详解
  16. 简述变分法在泛函极值问题中的应用
  17. 路由器 设置DNS 域名拦截 重定向
  18. android edittext底线,Android定制自己的EditText轻松改变底线颜色
  19. 阿里云张振尧:阿里云边缘云驱动5G时代行业新价值
  20. php oop java oop_php oop的作用

热门文章

  1. 金融计算器 npv_一个工具箱 之 净现值(NPV)计算器
  2. java 按键消息监听器用法,Java命令行中的键监听器
  3. tensorflow生成图片标签_Tensorboard高维向量可视化 + 解决标签和图片不显示BUG
  4. 单位内部一个计算机系统属于,2012年计算机一级MsOffice第五十九套练习题及答案解析...
  5. lottie动画_Lottie内存泄漏问题的定位与分析
  6. 三维重建 几何方法 深度学习_Occupancy Networks:基于学习函数空间的三维重建表示方法...
  7. 怎样把项目上传服务器,怎样将项目上传云服务器
  8. mysql系统文件路径修改不了_MySQL数据库改路径后没办法启动的问题
  9. matlab算线性方程解,MATLAB计算方法3解线性方程组计算解法.pptx
  10. 垃圾,还用汇编写单片机程序?