MarcusV(南墙大佬的搬运工)

南墙大佬的CSDN博客地址

导航

Java实现 LeetCode 530 二叉搜索树的最小绝对差(遍历树)

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

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

示例:

输入:

   1
    \
     3
    /
   2

输出:
1

解释:
最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。

PS:
递归遍历

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    private int result = Integer.MAX_VALUE; private TreeNode preNode = null;
    public int getMinimumDifference(TreeNode root) {
    
    getMin(root);
    return result;
}

private void getMin(TreeNode root){
    if(root == null){
        return;
    }
    getMin(root.left);
    if(preNode != null)
    {
        result = Math.min(Math.abs(root.val - preNode.val), result);
    }
    preNode = root;
    getMin(root.right);
}
}

posted on 2020-03-24 12:02  MarcusV  阅读(40)  评论(0编辑  收藏  举报