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;
        }
    }
    
  • 相关阅读:
    注释
    选择器
    SQL语句中查找字符的位置
    SQL语句中截取字符串Substr
    IDENTITY(函数)
    SQL Server设置主键自增长列
    SQL语句操作ALTER
    表的主键
    南京夜市
    夜班
  • 原文地址:https://www.cnblogs.com/hunter-w/p/13806406.html
Copyright © 2011-2022 走看看