(刷题笔记)Leetcode 530.二叉搜索树的最小绝对差

Leetcode 530: 二叉搜索树的最小绝对差 给定一个二叉搜索树(BST),找到两个节点之间的最小绝对差。 阅读详情

题目

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

示例:

输入:

1
 \
  3
 /
2

输出:
1

解释:
最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。

提示:

树中至少有 2 个节点。
本题与 783 https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/ 相同

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst

解题思路

本题考察的是二叉搜索树的性质,中序遍历时会得到一个升序的序列。最小差值只需要将有序数列中最相近两数两两相减后求最小值得到。写代码的时候需要注意的就是要知道哪个位置存储值,也就是理解中序遍历的意思。

代码(C++)

非递归

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    int getMinimumDifference(TreeNode* root) {

        int minDiff=INT_MAX;
        int temp1=INT_MAX;
        int temp2=0;

        stack<TreeNode*> st;

        while(!st.empty()||root){
            while(root){

                st.push(root);
                root=root->left;
            }

            root=st.top();
            st.pop();
            temp2=temp1;
            temp1=root->val;
            minDiff=abs(temp2-temp1)>minDiff?minDiff:abs(temp2-temp1);
            root=root->right;
        }

        return minDiff;

    }
};

递归

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:

    void dfs(TreeNode* root,vector<int> &seq){

        if(root==NULL) return;

        dfs(root->left,seq);
        seq.push_back(root->val);
        dfs(root->right,seq);
    }
    int getMinimumDifference(TreeNode* root) {

        vector<int> seq;
        int minDiff=INT_MAX;
        dfs(root,seq);
        for(int i=1;i<seq.size();++i){
            minDiff=minDiff<abs(seq[i]-seq[i-1])?minDiff:abs(seq[i]-seq[i-1]);
        }

        return minDiff;

    }
};
【Claude】Not logged in · Please run /login 报错已解决 意味着 Claude Code 没有找到任何有效凭证。直接/login——交互式首选;检查——排查环境变量污染;CI 用——自动化场景标准方案;macOS Keychain 异常——/logout/login重置;时钟偏差——校准系统时间。参考:Claude Code 官方《错误参考》"身份验证"章节、官方认证优先级文档、社区 Token 过期排查记录。 阅读详情

相关推荐

3D高斯溅射融合Gabor滤波器:频率感知如何提升神经渲染效率与质量

在计算机视觉与图形学领域,3D场景重建旨在从多视角图像中恢复真实世界的三维结构与外观。其核心原理是通过优化场景表示,使渲染出的二维图像与输入照片尽可能一致。传统方法在效率与细节保真度间常面临权衡,高频细节(如精细纹理、锐利边缘)的重建尤为消耗算力。频率感知技术为此提供了突破方向,它借鉴信号处理思想,将场景分解为不同空间频率的成分进行针对性建模。Gabor滤波器作为经典的频率-方向分析工具,能有效刻画纹理的局部频域特征。将Gabor的频率选择性与3D高斯溅射(3DGS)这一高效显式表示结合,构成了神经Gabo

weixin_33087827的博客 272

C++Leetcode530:二叉搜索树的最小绝对差

题目 给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。 示例 : 输入: 输出: 1 解释: 最小绝对差为1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。 注意: 树中至少有2个节点。 思路 1、中序遍历。二叉搜索树中序遍历后,所有的数从小到大顺序排列。用一个指针记录上一个节点的值,与下次遍历的值做差,比较大小,将较小的值保存。 实现方法 一、中序遍历...

weixin_43434305的博客 397

量化投资进阶:Fama-French三因子模型实战解析与Python实现

本文深入解析了Fama-French三因子模型,并提供了完整的Python实战指南。文章阐述了该模型如何通过引入市值因子(SMB)和价值因子(HML),对传统CAPM模型进行重要扩展,以更精准地解释股票收益来源。详细演示了使用Python获取数据、执行回归分析并解读结果(包括关键的阿尔法α)的全过程,并探讨了该模型在量化策略构建、风格诊断和业绩归因中的核心应用。

yog99的博客 1127

Leetcode:530. 二叉搜索树的最小绝对差(C++)

给你一个二叉搜索树的根节点root,返回树中任意两不同节点值之间的最小差值。差值是一个正数,其数值等于两值之差的绝对值。

Cosmoshhhyyy的博客 309

OCS2 移动机械臂深度解析:ocs2_mobile_manipulator 与 ocs2_mobile_manipulator_ros 源码全拆解

摘要:本文深入解析OCS2移动机械臂MPC控制框架的两个核心工具包。ocs2_mobile_manipulator负责算法建模,通过MobileManipulatorInterface统一构建最优控制问题,支持4种机械臂模型并实现自动维度推导;ocs2_mobile_manipulator_ros负责ROS集成,包含MPC求解、虚拟跟踪等4个核心节点。文章详细剖析了工具包分工、最优控制建模架构(含动力学、代价约束设计)、ROS运行管线、参数配置映射,并提供了高效的源码阅读顺序建议,帮助开发者快速掌握移动机械

m0_73309445的博客 655

(SCADA)监控与数据采集系统

SCADA应用于监控和采集数据来控制工业过程软件。它通过收集和传输实时数据,帮助操作员监视和控制各种设备和过程。

软件技术的专栏 4544

代码随想录21|530 二叉搜索树的最小绝对差、501二叉搜索树的众数以及236二叉树的最近公共祖先

打卡

m0_61124027的博客 163

ESP32学习,驱动LED点阵屏,SD卡播放GIF动图

搬运就可以实现效果,如果有不足,请批评指正。下步该学一下如何文章上视频了,老是截图不方便展示效果。

u011625956的博客 1868

LeetCode # 530 二叉查找树中查找两个节点之差的最小绝对值

给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例: 输入: 1 \ 3 / 2 输出: 1 解释: 最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。 解题思路1: 这道题和上一道求和的题十分相似,不同的是差的绝对值最小值只能出现在相邻的两个节点之间,因此可以与上次一样,手下中序遍历树得到一个有序的链表,然后遍历链表,找出差的绝对值最小值。 class Solution { L...

婷子的博客 1235

MFC实现简单UDP通信(附完整源码)

MFC实现简单UDP通信(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1109

华为OD机试 新系统 双机位C卷 真题题库目录|机考题库 + 算法考点详解

本文整理华为OD机试(机考) 新系统真题题库,提供高频考点精析与详细题目内容,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解 和 在线OJ做题练习。华为OD机试新系统真题题库。

qq_45776114的博客 10万+

leetcode 530. 二叉搜索树的最小绝对差(python)

给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值。 示例 : 输入: 1 \ 3 / 2 输出: 1 解释: 最小绝对差为1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。 注意: 树中至少有2个节点。 # Definition for a binary tree node. # class TreeN...

汤庆 1505

SAP FAGLFLEXT 是 SAP 新总账的核心余额表,存储多维度的汇总余额数据。核心结论:该表按 “科目 + 会计年度 + 期间 + 维度” 存储累计余额,字段可分为基础标识

FAGLFLEXT是SAP新总账的核心余额表,采用"科目+年度+期间+维度"结构存储多维汇总数据。其字段分为基础标识(科目、年度等)、维度细分(公司代码、利润中心等15个维度)、金额数值(本外币余额)、辅助控制(状态标识)四大类,支持新总账的灵活核算。该表通过凭证自动更新,与旧总账GLT0相比显著扩展了维度核算能力,各维度需在科目主数据或Ledger配置中启用才能使用。

金牌架构师 454

Leetcode刷题笔记 530. 二叉搜索树的最小绝对差

二叉搜索树的最小绝对差 知识点:二叉树、中序遍历 时间:2020年10月12日 题目链接:https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst// 题目 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例1 输入: 1 \ 3 / 2 输出: 1 解释: 最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。 思路 这是一棵二

cjl的博客 177

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

leetcode-530. 二叉搜索树的最小绝对差刷题笔记(c++)

写在前面 难度:简单 一时间没想起来,,, 题目详情 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例: 输入: 1 \ 3 / 2 输出: 1 解释: 最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。 提示: 树中至少有 2 个节点。 本题与 783 https://leetcode-cn.com/problems/minimum-distance-between-bst-nod

kngines 418

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

力扣刷题笔记21|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、 236. 二叉树的最近公共祖先

1.题目:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。 示例 1:输入:root = [4,2,6,1,3] 输出:1https://leetcode.cn/problems/minimum-absolute-difference-in-bst2.思路:3.代码: 4.总结:1.题目:给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。如果树中有

qq_45348845的博客 121

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

530.力扣LeetCode_二叉搜索树的最小绝对差

本文介绍了三种计算二叉搜索树最小差值的方法,均基于中序遍历的递增特性。1. Morris遍历:通过线索化实现O(1)空间复杂度,需独立维护前驱指针;2. 递归法:利用二级指针同步前驱节点,空间复杂度O(h);3. 显式栈法:手动维护栈结构,空间复杂度O(h)。三种方法核心都是比较相邻节点差值,但实现方式不同:Morris适合内存敏感场景,递归简洁但可能栈溢出,栈法则更可控。关键点在于准确记录中序前驱节点并进行有效差值计算。

2401_82472941的博客 1234

Java实现 LeetCode 530 二叉搜索树的最小绝对差(遍历树)

530. 二叉搜索树的最小绝对差 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例: 输入: 1 \ 3 / 2 输出: 1 解释: 最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。 PS: 递归遍历 /** * Definition for a binary tree node. * ...

南 墙 1万+

⭐算法入门⭐《二叉树 - 二叉搜索树》简单07 —— LeetCode 530. 二叉搜索树的最小绝对差

《二叉树 - 二叉搜索树》简单07 —— LeetCode 530. 二叉搜索树的最小绝对差

英雄哪里出来 2317

LeetCode530.二叉搜索树的最小绝对差

LeetCode530.二叉搜索树的最小绝对差

Love Peace 845

530. 二叉搜索树的最小绝对差【 力扣(LeetCode) 】

给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值。差值是一个正数,其数值等于两值之差的绝对值。

yyh520025的博客 725

Leetcode 530. 二叉搜索树的最小绝对差 C++

Leetcode 530. 二叉搜索树的最小绝对差 题目 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例: 输入: 1 \ 3 / 2 输出: 1 解释: 最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3)。 提示: 树中至少有 2 个节点。 本题与 783https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/相同

weixin_43750513的博客 249

代码随想录算法训练营Day18 | 530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

训练营第18天:530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236. 二叉树的最近公共祖先

jiabao0520的博客 1196

leetcode530.二叉搜索树的最小绝对差:递归中序遍历的差值追踪之道

二叉搜索树的最小绝对差问题可通过中序遍历递归解决。利用BST中序遍历结果为严格有序序列的特性,只需比较相邻节点的差值即可找到最小值,时间复杂度O(n),空间复杂度O(h)。递归过程中用pre记录前驱节点,动态更新最小差值res。该解法避免了存储完整序列,通过全局变量简化状态传递,巧妙利用有序性质将问题简化为线性扫描。

Musennn的博客 1061

代码随想录算法训练营第二十天|Leetcode530 二叉搜索树的最小绝对差、Leetcode501 二叉搜索树中的众数、Leetcode236 二叉树的最近公共祖先

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1。输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4。(1)当左结点返回值为空,右结点返回值不为空,我们将右结点返回值向上一次递归返回即可;

Demok123的博客 965

代码随想录刷题day18丨530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数 ,236. 二叉树的最近公共祖先

文档讲解:https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF%B9%E5%B7%AE.html解题思路:递归(中序遍历)+ 双指针思想。

m0_75195038的博客 975
上一篇: (刷题笔记)Leetcode 100.相同的树
下一篇: (刷题笔记)Leetcode 面试题 17.12. BiNode
Lucky&Happy
博客等级 码龄10年 1粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值