Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
bb5c72f
0004_Solved
WAcry May 9, 2020
1d540ec
Rename 0004-median-of-two-sorted-arrays to 0004-median-of-two-sorted-…
WAcry May 9, 2020
0a528f2
0004_Solved
WAcry May 9, 2020
58d4e87
Merge pull request #85 from chilimyan/master
MisterBooo May 9, 2020
bcacf82
0004_Solved
WAcry May 9, 2020
74f1537
0004_Solved
WAcry May 9, 2020
76b7c5f
Merge pull request #86 from freetreer/master
MisterBooo May 9, 2020
938f18f
0025 Solved
anomot May 9, 2020
7ee0923
695
nettee May 9, 2020
1c55e0b
Solve 0137
peteryuhang May 9, 2020
5984175
Fix name typo
peteryuhang May 9, 2020
7163aaf
solved @xiaoshuai96
xiaoshuai96 May 10, 2020
1882475
Merge pull request #87 from anomot/master
MisterBooo May 11, 2020
c6ab9a2
Merge pull request #88 from nettee/695
MisterBooo May 11, 2020
cca9325
Merge pull request #89 from peteryuhang/master
MisterBooo May 11, 2020
9c0eb9d
Merge pull request #90 from xiaoshuai96/master
MisterBooo May 11, 2020
55ec12a
替换坏的gif
xiaoshuai96 May 11, 2020
b54bba9
0530 solved
zzilcc May 12, 2020
4f4ed06
add default return value to Two-Sum solution
underspirit May 13, 2020
0e9512c
Merge pull request #91 from xiaoshuai96/master
MisterBooo May 14, 2020
3302fb3
Merge pull request #92 from zzilcc/master
MisterBooo May 14, 2020
0a7cbf6
Solved 0260
peteryuhang May 17, 2020
1ce488f
solved @xiaoshuai96
xiaoshuai96 May 17, 2020
8989334
Merge pull request #93 from underspirit/bugfix-1
MisterBooo May 18, 2020
26d9265
Merge pull request #94 from peteryuhang/master
MisterBooo May 18, 2020
74af9ba
Merge pull request #95 from xiaoshuai96/master
MisterBooo May 18, 2020
566bcae
Solved 0120
peteryuhang May 23, 2020
62bcddc
Merge pull request #97 from peteryuhang/master
MisterBooo May 26, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# 530. 二叉搜索树的最小绝对差

> 本文首发于公众号「图解面试算法」,是 [图解 LeetCode ](<https://github.com/MisterBooo/LeetCodeAnimation>) 系列文章之一。
>
> 同步博客:https://www.algomooc.com

题目来源于 LeetCode 上 530. 二叉搜索树的最小绝对差. 是关于树的一道题。

## 题目

给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。

示例:

```
输入:

1
\
3
/
2

输出:
1

解释:
最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。
```

提示:

树中至少有 2 个节点。
本题与 783 https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/ 相同



## 题目解析

计算树中任意两节点的差的绝对值的最小值,那么肯定是要遍历树,然后相邻节点求差对比是不是最小的。
二叉树的遍历有三种,前序遍历,中序遍历,后序遍历。

题目中给的是二叉搜索树,二叉搜索树有一个特色,就是中序遍历出来的结果,值是按照从小到大排列的。

所以我们只要中序遍历,保存上一个节点,然后遍历的时候取得当前节点和上一个节点的值的绝对值,如果比当前最小差还要小,那么更新最小差。

中序遍历是遍历左子树,然后根节点,最后是右子树,我们用递归去实现。

## 动画理解


<video id="video" controls="" preload="none" >
<source id="mp4" src="../Animation/0530.m4v" type="video/mp4">
</video>

## 参考代码


```javaScript
/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var getMinimumDifference = function(root) {
let min = Number.MAX_VALUE
let preNode = null
var travelTree = function (node) {
if (node) {
travelTree(node.left)
if(preNode) {
min = Math.min(min, Math.abs(preNode.val - node.val))
}
preNode = node
travelTree(node.right)
}
}
travelTree(root)
return min
};
```

## 复杂度分析

时间复杂度:O(N),N为树中节点个数。

空间复杂度:O(log(N))。

![](../../Pictures/qrcode.jpg)