LeetCode--530.二叉搜索树的最小绝对差(二叉树)

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

题目描述

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

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

示例 1:

复制代码
输入:root = [4,2,6,1,3]
输出:1

示例 2:

复制代码
输入:root = [1,0,48,null,null,12,49]
输出:1

提示:

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

代码

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {

    TreeNode pre = null;

    int min = Integer.MAX_VALUE;

    public int getMinimumDifference(TreeNode root) {
        // 采用中序遍历
        if(root.left != null) getMinimumDifference(root.left);

        // 处理中间节点
        if(pre != null && root.val - pre.val < min){
            min = root.val - pre.val;
        }
        pre = root;

        // 遍历右子树
        if(root.right != null) getMinimumDifference(root.right);

        return min;
    }
}
相关推荐
sali-tec1 小时前
C# 基于OpenCv的视觉工作流-章82-毛刺检测
图像处理·人工智能·opencv·算法·计算机视觉
恒想进步1 小时前
leetcode202.快乐数
算法
我爱cope1 小时前
【Agent智能体18 | 构建AI工作流的技巧-评估】
人工智能·语言模型·职场和发展
8Qi81 小时前
LeetCode 208:实现 Trie(前缀树)—— Java 题解 ✅
java·算法·leetcode·二叉树·tire树
吴可可1231 小时前
CAD2004二次开发C#可行性解析
算法
字节高级特工2 小时前
C++11(二) 革新:引用折叠与lambda表达式
java·开发语言·c++·算法
碎碎念_4922 小时前
”二分“高频题型总结:最小最大值、最大最小值、满足条件最小 / 最大
算法·二分
罗超驿2 小时前
14.LeetCode 438 题解:滑动窗口+哈希表找所有字母异位词
java·算法·leetcode
小欣加油2 小时前
leetcode239 滑动窗口最大值
数据结构·c++·算法·leetcode·哈希算法