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

题目描述

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

示例:

输入:

1

3
/
2

输出:
1

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

思路要点

  • 利用二叉搜索树的性质: 左子树<根节点<右子树, 于是中序遍历二叉树就可以得到升序数组, 遍历过程中相邻的结点之间的差的最小值即为符合题目要求的答案

  • 可以在中序遍历的过程中用pre 变量保存前驱节点的值,这样即能边遍历边更新答案,不再需要显式创建数组来保存,需要注意的是pre 的初始值需要设置成任意负数标记开头,下文代码中设置为 -1.

  • AC代码:

/*** 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, int& pre, int& ans) {if (root == nullptr) {return;}dfs(root->left, pre, ans);if (pre == -1) {pre = root->val;} else {ans = min(ans, root->val - pre);pre = root->val;}dfs(root->right, pre, ans);}int getMinimumDifference(TreeNode* root) {int ans = INT_MAX, pre = -1;dfs(root, pre, ans);return ans;}
};

力扣 二叉搜索树的最小绝对差相关推荐

  1. LeetCode Algorithm 530. 二叉搜索树的最小绝对差

    530. 二叉搜索树的最小绝对差 Ideas 前几天一直刷链表题,这道题刚看到的时候还有点懵,第一个想到的方法竟然是全排列,脑子瓦特了. 二叉树的题目基本上都得跟(前/中/后)序遍历扯点关系,一看是没 ...

  2. Suzy找到实习了吗 Day 21 | 二叉树进行中:530. 二叉搜索树的最小绝对差,501. 二叉搜索树中的众数,236. 二叉树的最近公共祖先

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

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

    题目 https://leetcode-cn.com/problems/minimum-absolute-difference-in-bst/ 题解 中序遍历法. 本题要求二叉搜索树任意两节点差的绝对 ...

  4. LeetCode简单题之二叉搜索树的最小绝对差/最小距离

    题目 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 差值是一个正数,其数值等于两值之差的绝对值. 示例 1: 输入:root = [4,2,6,1,3] 输出: ...

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

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

  6. leetcode 530. 二叉搜索树的最小绝对差(中序遍历)

    给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值.示例:输入:1\3/2输出: 1解释: 最小绝对差为 1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3). ...

  7. LeetCode(530)——二叉搜索树的最小绝对差(JavaScript)

    给定一个所有节点为非负值的二叉搜索树,求树中任意两节点的差的绝对值的最小值. 示例: 输入: 输出: 1 解释: 最小绝对差为1,其中 2 和 1 的差的绝对值为 1(或者 2 和 3). 注意: 树 ...

  8. leetcode系列-530. 二叉搜索树的最小绝对差

    题目描述:给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 差值是一个正数,其数值等于两值之差的绝对值. 示例 1: 输入:root = [4,2,6,1,3] 输 ...

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

    一:题目 二:上码 注意题目中是二叉搜索树(那么中序遍历的结果就是升序的) /*** Definition for a binary tree node.* struct TreeNode {* in ...

最新文章

  1. es dsl java api_ElasticSearch 系列 - RestFulAPI(DSL)
  2. 360 您访问的是存在未经证实信息的网站
  3. HTML5和css3的总结
  4. spark wai_WAI-ARIA对自动完成小部件的支持
  5. python决策树算法_决策树算法及python实现
  6. bzoj3322 最大生成树+LCA
  7. 2020全球智博会于苏州盛大开幕
  8. python 性能优化监控工具_推荐一款非常实用的JVM性能调优监控工具(亲测好用)...
  9. spring boot 打war包部署,打jar包
  10. html怎么隐藏信息,3.2.5 在HTML文件中隐藏信息
  11. VScode远程连接linux
  12. 三对角矩阵的压缩存储
  13. python带你过不一样的“清明节”和看神奇的《清明上河图》
  14. 手机酒店预订的革命之作——全新艺龙无线手机客户端测评
  15. 拼搏别样的未来,中国社科院与美国杜兰大学金融管理硕士项目助力你的人生旅程
  16. 生成哑变量的几种方法
  17. 别让用户发呆——设计中的防呆策略【转】
  18. 你是资讯控吗?——Web2.0智识管理简册
  19. 解决Tmux提示的size x*x from a smaller client窗口缩放问题
  20. android原生见缝插针游戏自定义控件源码

热门文章

  1. 一篇文章为你深度解析HTTPS 协议 1
  2. ubantu 单用户模式进入系统
  3. JAVA来读取大文本文件
  4. 手工释放linux内存——/proc/sys/vm/drop_caches
  5. C# 如何 保存对config文件的修改
  6. Your account has been locked out. Please contact the system administrator for further assistance.
  7. Linux操作系统使用基础04:文件与目录管理
  8. origin如何将多个曲线放在一张图_Origin入门教程(十二):误差棒棒棒棒儿
  9. Spring boot集成Swagger3
  10. C++实现系统性能检测工具