验证二叉搜索树

  • 题目
  • 大致思路
  • 代码实现

题目

大致思路

  1. 直接利用中序遍历的代码进行修改,将中序遍历按顺序存放入数组,按照中序的特点和二叉搜索树的特点,得到的数组应该是有序的,并且是升序的。最后进行判断即可。

代码实现

package com.immunize.leetcode.isValidBST;import java.util.ArrayList;
import java.util.List;public class Solution {// 定义好的TreeNodepublic class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}// 利用中序遍历来判断是否为有效的二叉验证树public boolean isValidBST(TreeNode root) {// list用于存放遍历过的数。List<Integer> list = new ArrayList<Integer>();if (root == null)return true;// 中序遍历orderBST(root, list);// 若非有序数组,则不是二叉验证树。for (int i = 0; i < list.size() - 1; i++) {if (list.get(i) >= list.get(i + 1))return false;}return true;}// 中序遍历并将遍历之数存放到list中private void orderBST(TreeNode root, List<Integer> list) {if (root == null)return;orderBST(root.left, list);list.add(root.val);orderBST(root.right, list);}}

20190914:(leetcode习题)验证二叉搜索树相关推荐

  1. Leetcode 98:验证二叉搜索树

    Leetcode 98:验证二叉搜索树 题目描述 我的解法:非递归的中序遍历 其它解法1:非递归的中序遍历,用LONG_MIN规避树的val等于INT_MIN的情况 其他解法2:递归的中序遍历思想 其 ...

  2. LeetCode 98. 验证二叉搜索树(中序遍历)

    文章目录 1. 题目信息 2. 解题 2.1 递归中序 2.2 非递归中序 1. 题目信息 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于 ...

  3. leetcode —— 98. 验证二叉搜索树

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

  4. LeetCode 98 验证二叉搜索树

    题目链接:力扣 思路 递归 递归函数声明 bool isValidBST(TreeNode* root,int lower,int upper);//判断根节点是否在lower和upper之间 递归出 ...

  5. leetcode 98. 验证二叉搜索树 递归遍历左右子树和中序遍历 c语言解法

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

  6. Leetcode 98. 验证二叉搜索树 (每日一题 20210810)

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

  7. LeetCode 98. 验证二叉搜索树 思考分析

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

  8. leetcode - 98. 验证二叉搜索树

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

  9. LeetCode 98. 验证二叉搜索树(递归)(迭代)

    题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也 ...

  10. Leetcode 98. 验证二叉搜索树 解题思路及C++实现

    解题思路: 分别验证root的左右子树是否是二叉树,同时,左子树的最大值要小于root->val,右子树的最小值要大于root->val. 在左右子树中,一直向root的左子树探索,就能得 ...

最新文章

  1. UVA 11752 超级幂
  2. 关于Mysql5.6半同步主从复制的开启方法【转】
  3. 第十六届全国大学生智能汽车竞赛 英飞凌特供芯片支持计划TC364TC377
  4. python3 requests 不进行编码 直接发送的方法
  5. mac地址容量的作用_S6520X+MAC地址容量检查命令
  6. 快速排序算法的简短描述
  7. 媒体声音 | 云数据库,谁才是领导者?
  8. ae正在发生崩溃_AE错误:正在发生崩溃的解决方法,原创问题解决方案
  9. .net实现邮件发送及解决遇到问题
  10. [EffectiveC++]item06:若不想使用编译器自动生成的函数,就该明确决绝
  11. 如何将dwg文件转成kml文件
  12. 常用的线性充电IC和开关充电IC的区别
  13. 抢先体验 八九月间漫步最初秋色
  14. 【回声状态网络ESN预测】基于粒子群优化回声状态网络ESN实现数据预测附matlab代码
  15. c++ 写一个复数计算器
  16. Mac系统 - zsh所有命令失效解决方式
  17. Ae动态模糊插件ReelSmart Motion Blur
  18. 存在正文时不允许未命名的原型参数_用Swift开发macOS程序, 六、原型、格式与开发说明...
  19. 【kimol君的无聊小发明】—用python写截屏小工具
  20. Mongoose在向集合中插入文档时的集合命名问题

热门文章

  1. TIOBE 12 月编程语言排行榜:争夺年度编程语言,Java、C、Python、C# 即将开战!...
  2. 用 Python 实现植物大战僵尸代码!
  3. 他毕业1年,换了5份工作,为什么失业的总是他?
  4. 全面解析腾讯最新开源 loT 操作系统 TencentOS tiny!
  5. 如何巧用区块链密码学避免数据“裸奔”?
  6. 程序员如何避免半途而废?
  7. Java 失宠于 Oracle?
  8. Python 2 即将退休,Fedora 怎么办?
  9. @程序员,你敢轻易地写 Bug 吗?
  10. linux怎么装vnc插件,linux下安装基于GNOME的VNC连接工具Vinagre