• 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;
        }
    }
    
  • 相关阅读:
    POJ 3187 Backward Digit Sums
    POJ 3669 Meteor Shower BFS
    POJ 1979 Red and Black DFS
    不想切题、
    企业管理信息系统成功实施的四个阶段
    linux下memcached的安装
    Apache开启伪静态示例
    网页设计基础知识
    memcached安装说明
    伪静态.htaccess的练习
  • 原文地址:https://www.cnblogs.com/hunter-w/p/13806406.html
Copyright © 2020-2023  润新知