当前位置:网站首页>leetcode刷题:二叉树22(二叉搜索树的最小绝对差)
leetcode刷题:二叉树22(二叉搜索树的最小绝对差)
2022-07-07 10:30:00 【涛涛英语学不进去】
530.二叉搜索树的最小绝对差
给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。
示例:
提示:树中至少有 2 个节点。
二叉搜索树,本身升序,非递减,中序遍历获取值,一个个比较
public int getMinimumDifference(TreeNode root) {
List<Integer> result = new ArrayList();
//遍历二叉树获取结果集
//二叉搜索树本身就是升序的
inorderTraversal(root, result);
//定义一个不可能出现的最大值
int minimumDifference = 100001;
for (int i = 1; i < result.size(); i++) {
if (minimumDifference == 0) {
return minimumDifference;
}
if (result.get(i) - result.get(i - 1) < minimumDifference) {
minimumDifference = result.get(i) - result.get(i - 1);
}
}
return minimumDifference;
}
public void inorderTraversal(TreeNode root, List<Integer> result) {
if (root == null) {
return;
}
//中序遍历 左 中 右
inorderTraversal(root.left, result);
result.add(root.val);
inorderTraversal(root.right, result);
}
看看题解发现我写复杂了,题解的写法是用父指针,遍历中比较。
TreeNode parent;
int result = Integer.MAX_VALUE;
public void inorderTraversalParent(TreeNode root) {
if (root == null) {
return;
}
//中序遍历 左 中 右
inorderTraversalParent(root.left);
if (parent != null) {
if (result > root.val - parent.val) {
result = root.val - parent.val
}
}
parent = root;
inorderTraversalParent(root.right);
}
public int getMinimumDifference2(TreeNode root) {
inorderTraversalParent(root);
return result;
}
边栏推荐
- OSPF exercise Report
- 小红书微服务框架及治理等云原生业务架构演进案例
- Minimalist movie website
- 数据库系统原理与应用教程(011)—— 关系数据库
- IPv6 experiment
- Static comprehensive experiment
- How much does it cost to develop a small program mall?
- Up meta - Web3.0 world innovative meta universe financial agreement
- ps链接图层的使用方法和快捷键,ps图层链接怎么做的
- (to be deleted later) yyds, paid academic resources, please keep a low profile!
猜你喜欢
SQL Lab (36~40) includes stack injection, MySQL_ real_ escape_ The difference between string and addslashes (continuous update after)
zero-shot, one-shot和few-shot
wallys/Qualcomm IPQ8072A networking SBC supports dual 10GbE, WiFi 6
An error occurred when vscade tried to create a file in the target directory: access denied [resolved]
数据库系统原理与应用教程(010)—— 概念模型与数据模型练习题
SQL Lab (41~45) (continuous update later)
Several methods of checking JS to judge empty objects
BGP third experiment report
H3C HCl MPLS layer 2 dedicated line experiment
111. Network security penetration test - [privilege escalation 9] - [windows 2008 R2 kernel overflow privilege escalation]
随机推荐
RHSA first day operation
利用棧來實現二進制轉化為十進制
Realize all, race, allsettled and any of the simple version of promise by yourself
Configure an encrypted web server
SQL lab 1~10 summary (subsequent continuous update)
Introduction and application of smoothstep in unity: optimization of dissolution effect
Decrypt gd32 MCU product family, how to choose the development board?
sql-lab (54-65)
【PyTorch实战】用PyTorch实现基于神经网络的图像风格迁移
Up meta - Web3.0 world innovative meta universe financial agreement
Completion report of communication software development and Application
Idea 2021 Chinese garbled code
【统计学习方法】学习笔记——逻辑斯谛回归和最大熵模型
College entrance examination composition, high-frequency mention of science and Technology
VSCode的学习使用
Several methods of checking JS to judge empty objects
When OSPF specifies that the connection type is P2P, it enables devices on both ends that are not in the same subnet to Ping each other
Learning and using vscode
数据库系统原理与应用教程(007)—— 数据库相关概念
小红书微服务框架及治理等云原生业务架构演进案例