leetcode
530. 二叉搜索树的最小绝对差

问题描述

LeetCode 530. 二叉搜索树的最小绝对差 (opens in a new tab),难度简单

给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值

差值是一个正数,其数值等于两值之差的绝对值。

示例 1

输入:root = [4,2,6,1,3]
输出:1

示例 2

输入:root = [1,0,48,null,null,12,49]
输出:1

提示

  • 树中节点的数目范围是 [2, 104]
  • 0 <= Node.val <= 105

题解

class Solution {
    private Integer prev = null;
    private int result = Integer.MAX_VALUE;
 
    public int getMinimumDifference(TreeNode root) {
        dfs(root);
        return result;
    }
 
    private void dfs(TreeNode node) {
        if (node == null) {
            return;
        }
        dfs(node.left);
        if (prev != null) {
            result = Math.min(result, node.val - prev);
        }
        prev = node.val;
        dfs(node.right);
    }
}