二叉搜索树的最小绝对差值-503

题目描述

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

解题思路

我们这里采用一个result值作为我们最后的返回值,同时使用pre存储我们的前一个遍历的节点,因为二叉搜索树的最小绝对差值只能是存在与我们两个相邻的节点之间,所以这里我们采用中序遍历的方式,遍历的结果就是有序的

实例代码

class Solution {

    private int result=Integer.MAX_VALUE;
    TreeNode pre=null;

    public int getMinimumDifference(TreeNode root) {
        foreach(root);
        return result;
    }

    public void foreach(TreeNode node){
        if(node==null){
            return;
        }
        foreach(node.left);
        
        if(pre==null){
            pre=node;
        }else{
            if(Math.abs(node.val-pre.val)<result){
                result=Math.abs(node.val-pre.val);
            }
            pre=node;
        }
        foreach(node.right);
    }

}
posted @ 2024-11-30 10:52  旭熙  阅读(42)  评论(0)    收藏  举报