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

Posted 风车菊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了530. 二叉搜索树的最小绝对差相关的知识,希望对你有一定的参考价值。

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

描述

给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。
差值是一个正数,其数值等于两值之差的绝对值。

思路

读题是一个二叉搜素树,表明当前树的中序遍历结果是一个有序的且递增的顺序,他让我们找出最小的差值,肯定是相邻的两个数计算出的结果是最小差值,我们再这些相邻的结果中一直动态的记录最小差值,找到一个就更新,这就需要我们设计一个前置节点,始终记录当前遍历节点的前一个节点

代码

class Solution 
    // 当前节点的,前一个节点
    TreeNode preNode = null;
    // 当前差的最小值
    int result = Integer.MAX_VALUE;
    public int getMinimumDifference(TreeNode root) 
        traversal(root);
        return result;
    
    // 因为是一个二叉搜素树,所以中序遍历是一个有序的顺序(递增的)
    public void traversal(TreeNode root)
        if(root == null) return;
        traversal(root.left);
        if(preNode != null)
            // 因为是一个中序是递增的,所以后置节点的值大于前置节点的值
            result = Math.min(result,root.val - preNode.val);
        
        // 设置当前节点为前置节点,进入下一个节点
        preNode = root;
        traversal(root.right);
    

以上是关于530. 二叉搜索树的最小绝对差的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

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

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

[LC]530题 二叉搜索树的最小绝对差