leetcode 98. 验证二叉搜索树 【一遍dfs】【时间击败99.72%】【内存击败94.23%】
复用left[],【时间击败73.33%】——》【时间击败99.72%】
【内存击败36.17%】——》【内存击败94.23%】
dfs(r)返回值=new long[]{包括r节点的子树所有节点的最小值,包括r节点的子树所有节点的最大值}
1 boolean ans = true;
2
3 public boolean isValidBST(TreeNode root) {
4 if (root == null) return true;
5 dfs(root);
6 return ans;
7 }
8
9 long[] dfs(TreeNode r) {
10 long[] T = new long[]{Long.MAX_VALUE, Long.MIN_VALUE};
11 if (ans == false) return T;
12 if (r == null) return T;
13 long[] left = dfs(r.left);
14 long[] right = dfs(r.right);
15 if (!(left[1] < r.val && r.val < right[0])) {
16 ans = false;
17 return T;
18 }
19 left[0]=Math.min(left[0], r.val);
20 left[1]=Math.max(right[1], r.val);
21 return left;
22 }
leetcode 98. 验证二叉搜索树 【一遍dfs】【时间击败99.72%】【内存击败94.23%】的更多相关文章
- LeetCode 98. 验证二叉搜索树 | Python
98. 验证二叉搜索树 题目来源:https://leetcode-cn.com/problems/validate-binary-search-tree 题目 给定一个二叉树,判断其是否是一个有效的 ...
- Java实现 LeetCode 98 验证二叉搜索树
98. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右 ...
- 力扣Leetcode 98. 验证二叉搜索树
验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身 ...
- LeetCode 98 验证二叉搜索树
题目: 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是 ...
- Leetcode 98 验证二叉搜索树 Python实现
给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索 ...
- LeetCode 98——验证二叉搜索树
1. 题目 2. 解答 2.1. 方法一 我们初始化根节点的范围为长整形数据的最小最大值 \([LONG\_MIN,LONG\_MAX]\),则其左子节点的取值范围为 \([LONG\_MIN,根节点 ...
- LeetCode 98. 验证二叉搜索树(Validate Binary Search Tree)
题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也 ...
- LeetCode:验证二叉搜索树【98】
LeetCode:验证二叉搜索树[98] 题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当 ...
- 【LeetCode】98. 验证二叉搜索树
98. 验证二叉搜索树 知识点:二叉树:递归 题目描述 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大 ...
- 98. 验证二叉搜索树 前序遍历解法以及后续遍历解法(go语言)
leetcode题目 98. 验证二叉搜索树 前序遍历 最简洁的答案版本,由于先判断的是根节点,所以直接判断当前root的值v,是否满足大于左子树最大,小于右子树最小,然后再遍历左子树,右子树是否是这 ...
随机推荐
- xxl-job调度任务简单使用
简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用. https://www.cnblogs.com/x ...
- 常用的基础方法,对象转数组,phpcurl请求
/** * CURL方法 * @param type $url * @param type $https * @param type $method * @param type $data * @re ...
- <input>输入框,限制输入的为正整数
<input id="eventId" col="EventId" type="text" class="form-cont ...
- HJ92 在字符串中找出连续最长的数字串
描述 输入一个字符串,返回其最长的数字子串,以及其长度.若有多个最长的数字子串,则将它们全部输出(按原字符串的相对位置) 本题含有多组样例输入. 输入描述: 输入一个字符串. 输出描述: 输出字符串中 ...
- 【杂项】瞎玩——suhr RIOT单块制作流程
难得的周末,在家上课似乎丝毫没有轻松多少,然而专业课任务的ddl远在天边,上午赶赶进度似乎稍微闲下来了点,正好前几天找电路的时候看到一个非常nice的效果器制作网站,国内少有深入研究效果器电路的文章, ...
- 基于excel的自动化框架
设定项目文件大致结构 atp/: 项目名 conf/:存放配置文件 data/:存放sql文件 lib/: 存放项目的所有源代码. logs/:存放日志文件 uploads/:存放下载的文件 star ...
- 从傻逼才做的大创开始的NLP学习
先实名辱骂一下保加利亚电信的毕业生,留个源码,源码里把自己训好的模型删了,洗好的文本删了,什么都给删了,白茫茫一片真他妈干净. 简单说说目前在做的这个东西,姑且算是个项目吧: 给出一个问句,通过实体识 ...
- vue3 门户网站搭建1-路由
从 0 到 1搭建门户网站,记录一下. 因为需求不大,所以比较简单,门户和后台管理直接一个项目出来,路由配置则想的是: 1.门户,用 /portal 标识 2.后台管理,用 /admin 标识 3. ...
- (0524) rbf 格式 (intel)
http://blog.chinaaet.com/yuwoo/p/5100049901 https://blog.csdn.net/qq_38531460/article/details/107066 ...
- linux 安装简洁的 zsh
为什么要安装简洁的 zsh zsh 是 shell 中的佼佼者,但是网上配置 zsh的方案,千篇一律的都是配置的 oh-my-zsh,个人感觉非常臃肿,配置低的话,用起来还会非常卡. 安装 zsh 本 ...