刷刷刷 Day 21 | 530. 二叉搜索树的最小绝对差
530. 二叉搜索树的最小绝对差
LeetCode题目要求
给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。
示例
输入:root = [4,2,6,1,3]
输出:1
解题思路
根据二叉搜索树的特性,最小差相当于在排序数组中找最小差值,那么可通过中序遍历
上代码
class Solution {
private int min = Integer.MAX_VALUE;
private TreeNode pre;
public int getMinimumDifference(TreeNode root) {
// 由于是搜索二叉树,那么最小差一定是在 相当于在排序数组中找最小差值,那么可通过中序遍历
if (root == null) {
return 0;
}
// 中序遍历 左中右
inorder(root);
return min;
}
public void inorder(TreeNode node) {
if (node == null) {
return;
}
// 左
inorder(node.left);
// 中
if (pre != null) {
min = Math.min(node.val - pre.val, min);
}
pre = node;
// 右
inorder(node.right);
}
}
附:学习资料链接