zoukankan      html  css  js  c++  java
  • 530. 二叉搜索树的最小绝对差

    题目描述

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

    树中至少有 2 个节点。

    题目描述

    注意利用二叉搜索树的特点,中序遍历是有序的,而有序数组中两节点差的最小值即是任意两相邻节点差值的最小值。
    中序遍历二叉搜索树时,使用pre记录前一个节点,比较当前节点与pre的差值和当前记录的最小值,最终获得最小值。

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        int pre;
        int res;
    
        private void dfs(TreeNode root) {
            if (root == null) {
                return;
            }
    
            dfs(root.left);
            if (pre == -1) {
                pre=root.val;
            } else {
                res = Math.min(res,root.val-pre);
                pre=root.val;
            }
            dfs(root.right);
        }
    
        public int getMinimumDifference(TreeNode root) {
            pre=-1;
            res=Integer.MAX_VALUE;
            dfs(root);
            return res;
        }
    }
    
  • 相关阅读:
    最详细最权威的Android 编码规范
    一款实用的工具手机软件
    一个简单的四则运算程序(优化)
    随笔
    一个简单的四则运算程序
    随手记(四)
    随手记(三)
    随手记(二)
    随手记(一)
    大学生生活中的三大痛点
  • 原文地址:https://www.cnblogs.com/hunter-w/p/13806406.html
Copyright © 2011-2022 走看看