530.Minimum Absolute Difference in BST 二叉搜索树中的最小差的绝对值
[抄题]:
Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.
Example:
Input:1\3/2Output: 1Explanation: The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).
[暴力解法]:
时间分析:
空间分析:
[奇葩输出条件]:
[奇葩corner case]:
[思维问题]:
基础弱到忘了二叉树的traverse怎么写了,还以为要输出到array
[一句话思路]:
先初始化为MAX_VALUE,再按标准格式写
[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):
[画图]:
[一刷]:
- traverse函数里面切勿定义变量,会导致重复赋值出错。以前错了没注意
- 四则运算的对象也要满足非空not null 的基本条件
[二刷]:
[三刷]:
[四刷]:
[五刷]:
[五分钟肉眼debug的结果]:
[总结]:
先初始化为MAX_VALUE,再按标准格式写
[复杂度]:Time complexity: O(n) Space complexity: O(1) 没有额外空间
[英文数据结构或算法,为什么不用别的数据结构或算法]:
[关键模板化代码]:
左中右
getMinimumDifference(root.left);if (prev != null) {min = Math.min(min, root.val - prev);}prev = root.val;getMinimumDifference(root.right);
[其他解法]:
[Follow Up]:
不是BST,用treeset,复杂度都是lgn,可以取出任何一个元素
[LC给出的题目变变变]:
[代码风格] :
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {int min = Integer.MAX_VALUE;TreeNode prev = null;public int getMinimumDifference(TreeNode root) {//corner caseif (root == null) {return min;}//in-order traversal getMinimumDifference(root.left);if (prev != null) {//only deletable if not nullmin = Math.min(min, root.val - prev.val);}//refresh the prevprev = root;getMinimumDifference(root.right);//returnreturn min;} }
View Code
转载于:https://www.cnblogs.com/immiao0319/p/8565405.html
530.Minimum Absolute Difference in BST 二叉搜索树中的最小差的绝对值相关推荐
- [LeetCode] Inorder Successor in BST 二叉搜索树中的中序后继节点
Given a binary search tree and a node in it, find the in-order successor of that node in the BST. No ...
- LeetCode 450 Delete Node in a BST(二叉搜索树中的删除结点)
问题:给出一个二叉搜索树,删除指定的结点,要求返回删除后的树. 算法思路: 1.删除的结点是叶子结点,则直接删除 2.删除的结点只有一个子结点(左孩子右孩子),则直接用子结点替换 3.删除的结点左右孩 ...
- Suzy找到实习了吗 Day 21 | 二叉树进行中:530. 二叉搜索树的最小绝对差,501. 二叉搜索树中的众数,236. 二叉树的最近公共祖先
530. 二叉搜索树的最小绝对差 题目 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 .差值是一个正数,其数值等于两值之差的绝对值. solution # Defi ...
- 13.<tag-二叉树和BST基础>lt.701. 二叉搜索树中的插入操作0.5
X.<tag-数组和二分查找>-lt.xx-xxxxxx + lt.xx-xxxxxx lt.701. 二叉搜索树中的插入操作 [案例需求] [思路分析一, 带返回值的递归] [代码实现] ...
- [力扣] 501. 二叉搜索树中的众数
501 二叉搜索树中的众数 给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素). 例如: 给定 BST [1,null,2,2], 返回[2]. 提示:如果众数超 ...
- 70. Leetcode 701. 二叉搜索树中的插入操作 (二叉搜索树-基本操作类)
给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同.注意,可能 ...
- 【数据结构与算法】之深入解析“二叉搜索树中的插入操作”的求解思路与算法示例
一.题目要求 给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value,将值插入二叉搜索树,返回插入后二叉搜索树的根节点,输入数据保证,新值和原始二叉搜索树中的任意节点值都不同. 注意 ...
- 701. 二叉搜索树中的插入操作
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 保证原始二叉搜索树中不存在新值. 注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜 ...
- leetcode701. 二叉搜索树中的插入操作(dfs)
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树. 返回插入后二叉搜索树的根节点. 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同.注意,可能存在多种有效的插入方式,只要树 ...
最新文章
- 两道概率题-供大家周末把玩
- Dockerfile脚本:CMD与ENTRYPOINT的区别
- linux调用信号处理程序后返回,如何在Linux上执行异步信号处理程序?
- boost::detail模块实现boost::blank的测试程序
- hosts文件中同一个域名两个IP的解析顺序
- SAP 产品 UI 里的容器组件的概念和开发概述
- 为什么ps图片打开是色块_PS教程 我的PS我做主之山村调色
- objective-c 使用NSNumber 将int float long等数据类型加入到数组或字典中
- 干货!这可能是最全的IntelliJ IDEA For Mac快捷键说明,建议收藏!
- 对话Google全球VP Jay Yagnik:TensorFlow2.0会强化可控性
- 自动驾驶_高精地图模型构成
- 聚类算法之密度聚类方法
- 账户维护账户服务器,win10重装之后卡在账户登录界面怎么办_网站服务器运行维护,win10,账户...
- HTML中Form表单的使用
- 官网USB读卡器移植(TF卡SDIO模式 + SPI-flash)
- 旭凤锦覓虐心 恋只愿共赴鸿蒙,香蜜:锦觅与旭凤4次同床,1次酒醉灵修,1次再续前缘,1次虐心!...
- linux-锁屏时间设置
- JNLP文件及JWS
- 还愁没壁纸?Python爬取5K分辨率高清桌面壁纸
- VirtualBox 虚拟机安装Windows10,珍藏版!!!
热门文章
- 2018福建省“百越杯”CTF初赛writeup
- python列表增删改查_Python列表List增删改查、拷贝
- 手机系统要不要更新?来看看这个答案
- wecenter 第三方微博登录:你所访问的站点在微博认证失败
- 2020年7月内容总结8月计划:
- 仿“唯品会”钓鱼网站分析
- 匹配颜色、渐变映射、阈值
- 小米node2红外_国外媒体测评小米MIX2:存在三大致命缺陷,想不到你是这样的小米...
- Python中五个不常见的隐晦用法小结
- 【新一配】选股+择时策略组合