Diferencia absoluta mínima del árbol de búsqueda binaria

给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节
点的差的绝对值的最小值。

思路:
	首先这是一个二叉搜索树,满足左<根<右,中序遍历得到一个递增的数组。
	相邻两数的差值的最小值就是答案。
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    
    

    int ans,pre;
    public int getMinimumDifference(TreeNode root) 
    {
    
    
         ans = Integer.MAX_VALUE;//最大的int
         pre = -1;//保存前驱结点的值
        dfs(root);
        return ans;
    }
    public void dfs(TreeNode root)
    {
    
    
        if(root == null)
        {
    
    
            return ;
        }
        //左根右的顺序
        dfs(root.left);
        if(pre == -1)
        {
    
    
            pre = root.val;
        }
        else
        {
    
    
            ans = Math.min(ans,root.val-pre);
            pre = root.val;
        }

        dfs(root.right);

    }
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45663946/article/details/109020939
Recomendado
Clasificación