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

需求:

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

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

示例 1:

二叉树

输入:root = [4,2,6,1,3]
输出:1

示例 2:

二叉树

输入:root = [1,0,48,null,null,12,49]
输出:1</pre>

leetcode题目链接

思路

看到这个题目,我们依然选择中序遍历,中序遍历是左中右的方式。两个元素进行比较将最小的值进行缓存。


中序遍历
/**
 * 530. 二叉搜索树的最小绝对差
 */
public class GetMinimumDifference530 {
    TreeNode preNode;
    int minNum = Integer.MAX_VALUE;
    public int getMinimumDifference(TreeNode root) {

        traversal(root);
        return minNum;
    }

    private void traversal(TreeNode root) {
        if (root == null) return;
        traversal(root.left);
        if(preNode !=null ){
            minNum = Math.min(minNum, Math.abs(preNode.val-root.val));
        }
        preNode = root;
        traversal(root.right);
    }
}
验证结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容