首页 > 其他分享 > 二叉搜索树的最小绝对差

二叉搜索树的最小绝对差

时间:2023-07-31 20:44:06浏览次数:35  
标签:right TreeNode val int 最小 二叉 搜索 root left

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

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

示例 1:

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

输入:root = [1,0,48,null,null,12,49]
输出:1

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int getMinimumDifference(TreeNode root) {
        //递归遍历所有元素的数值,排序之后找到临近最小差值
        ArrayList<Integer> list = new ArrayList<Integer>();
        getRootNumber(root,list);
        list.sort(Comparator.naturalOrder());
        int min = Integer.MAX_VALUE;
        for(int i=0;i<list.size();i++){
            if(i+1<list.size())min = Math.min(min,list.get(i+1) - list.get(i));
        }
        return min;
    }
    public void getRootNumber(TreeNode root,ArrayList list){
        if(root==null)return;
        list.add(root.val);
        getRootNumber(root.left,list);
        getRootNumber(root.right,list);
    }
}

标签:right,TreeNode,val,int,最小,二叉,搜索,root,left
From: https://www.cnblogs.com/xiaochaofang/p/17594442.html

相关文章

  • LocalDateTime获取当天最小、最大时间
    当天最大时间:LocalDateTimemax=LocalDateTime.of(LocalDate.from(LocalDateTime.now()),LocalDateTime.MAX.toLocalTime());当天最小时间:LocalDateTimemin=LocalDateTime.of(LocalDate.from(LocalDateTime.now()),LocalDateTime.MIN.toLocalTime());当前时间是否超......
  • HDU1151—Air Raid(最小路径覆盖)
    【\(HDU1151\)】—\(Air\)\(Raid\)(最小路径覆盖)题解描述给定一个\(DAG\)(有向无环图),选定最少的点,使得从这些点出发可以覆盖每一条路径(即每个点都经过至少一遍)。输入:24334132333131223输出21以测试数据为例,\(4\)个路口,\(3\)条路。现派伞兵经过所有......
  • 二分图的最小顶点覆盖 最大独立集 最大团
    二分图的最小顶点覆盖最大独立集最大团重要结论写在最前面:①最小顶点覆盖等于二分图的最大匹配②最大独立集=所有顶点数-最小顶点覆盖③二分图的最大团=补图的最大独立集一、二分图的最小顶点覆盖定义:假如选了一个点就相当于覆盖了以它为端点的所有边。最小顶点覆......
  • 最大最小宽高
    最大最小宽高最大宽度:max-width,最大高度:max-height最小宽度:min-width,最小高度:min-height当一个元素的尺寸会自动变化时,设置最大最小宽高,可以让它不至于变得过小或过大。在实际开发中,我们通常为PC端的页面设置一个最小宽度,通常此宽度为设计稿的宽度html{min-width:1226......
  • 110. 平衡二叉树
    给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例1:输入:root=[3,9,20,null,null,15,7]输出:true#Definitionforabinarytreenode.#classTreeNode:#def__init__(se......
  • 【学习】最小生成树-Prim
    最小生成树(Prim)学习笔记展开目录目录最小生成树(Prim)学习笔记BeforePrim核心思想堆优化例题挖水井Before为了做个挖水井去学了Prim虽然根本不是算法的锅前置知识是\(dijkstra\),有一定相似度Prim\(Kruskal\)是一种适用于稀疏图的算法,而对于稠密图,也有其适用的算法—......
  • 【Matlab】基于KDtree的最近邻搜索和范围搜索
    摘要:介绍Matlab的rangesearch()函数和knnsearch()函数。rangesearch()——根据给定k-维数据集,返回指定距离范围内的所有数据点knnsearch()——根据给定k-维数据集,返回最近的K个数据点%%给定数值矩阵(inputdata),返回最近点的K个点%datamatrix,100x3,表示100个空间点......
  • Codeforces Round 105 (Div. 2) - D. Bag of mice DP 或 记忆化搜索 求概率
    D.Bagofmice题意待补充~思路可利用DP或者记忆化搜索求解本问题,实际上这两个方法等价。当\(w=0\)时必输当$w\ne0$但$b=0$时必赢剩下的情况,先考虑一个问题:赢的局面是怎么构成的?代码记忆化搜索//>>>Qiansui#include<bits/stdc++.h>#definelllong......
  • 树与二叉树
    树的概念:根有子节点,子节点又是一个子树的根T1,T2,T3换一个顺序就不是原来的树了,就称为有序树,T1,T2,T3换一个顺序就还是原来的树,就称为无序树二叉树不是树的特殊情况,二叉树中的一个结点必须表明该结点是左节点还是右节点,即便它没有兄弟结点。而树不必区分左右。  二叉......
  • 最小Hello-world的实现——第一天(准备linux环境)
    wsl之配置vscode使用了wsl去进行在windows环境下运行linux服务,我之前就下载好了wsl的,所以只是欠缺从vscode中连接到linux服务器。采用了下述博文去配置vscode中的ssh服务。配置攻略最简单的就是通过通过wsl指令进入linux环境,然后直接用.code命令。......