给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。

示例:

注意:

二叉树的大小范围在 2 到 100。
二叉树总是有效的,每个节点的值都是整数,且不重复。

——————
解题思路:中序遍历得到的二叉搜索树的结果是按从小到大排序的,因此可以用中序遍历得到的结果计算相邻两位的最小差值就是我们想要的结果。因为使用递归算法,空间复杂度为O(m)O(m)O(m),m是树的深度。遍历n个结点,时间复杂度为O(n)O(n)O(n)。

/*** 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 {private:int prev = NULL;int ans = INT_MAX;
public:int minDiffInBST(TreeNode* root) {dfs(root);return ans;}void dfs(TreeNode* root){if(root==NULL)return;dfs(root->left);if(prev != NULL)ans = min(ans,(root->val-prev));prev = root->val;dfs(root->right);}
};

leetcode - 783. 二叉搜索树结点最小距离相关推荐

  1. LeetCode 783. 二叉搜索树结点最小距离(中序遍历)

    1. 题目 给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值. 示例:输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树结点 ...

  2. leetcode —— 783. 二叉搜索树结点最小距离

    给定一个二叉搜索树的根结点 root,返回树中任意两节点的差的最小值. 解题思路:使用二叉搜索树的性质,因为题目是要寻找任意两个节点的差的最小值,因此可以通过中序遍历找到差的最小值. 其Python代 ...

  3. LeetCode 783二叉搜索树节点最小距离-简单

    给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 示例 1: 输入:root = [4,2,6,1,3] 输出:1 示例 2: 输入:root = [1,0,48, ...

  4. 【每日一算法】二叉搜索树结点最小距离

    微信改版,加星标不迷路! 每日一算法-二叉搜索树节点最小距离 作者:阿广 阅读目录 1 题目 2 解析 1 题目 给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值. 示例: 输入 ...

  5. LeetCode(783)——二叉搜索树结点最小距离(JavaScript)

    给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值. 示例1: 输入: root = [4,2,6,1,3,null,null] 输出: 1 解释: 注意,root是树结点对象(T ...

  6. 783. 二叉搜索树节点最小距离

    题目 方法一 转数组 题目给出的数据是放在二叉搜索树中.二叉搜索树的中序遍历的结果是从小到大排列的. 用中序遍历二叉搜索树,得到从小到大排好序的数组 比较排序好的素组两两间的差值 class Solu ...

  7. 783. 二叉搜索树节点最小距离(dfs)

    给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 注意:本题与 530:https://leetcode-cn.com/problems/minimum-absol ...

  8. leetcode 235. 二叉搜索树的最近公共祖先(Java版,树形dp套路)

    题目 原题地址:leetcode 235. 二叉搜索树的最近公共祖先 说明: 所有节点的值都是唯一的. p.q 为不同节点且均存在于给定的二叉搜索树中. 题解 关于 树形dp 套路,可以参考我的另一篇 ...

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

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

最新文章

  1. HDU1878(判断一个无向图是否存在欧拉回路)
  2. C语言试题四之计算并输出3到n之间所有素数的平方根之和
  3. 一个div压在另一个div上面_【CSS小分享】用CSS画一个新拟态风格键盘
  4. 手机能写python代码_用手机写Python代码!可以随时随地学Python!
  5. mysql 长事务查询_MySQL长事务详解
  6. android 并排按钮,Android TextView和Button并排,ellipsize左侧TextView
  7. VS2008引用webservice的奇怪BUG解决方案
  8. 在xp IIS上搭建动易论坛注意事项
  9. 简单的豆瓣电影推荐系统demo
  10. 模拟集成电路设计(拉扎维)第三章学习笔记
  11. jszip 解压压缩包_Node.js使用jszip实现打包zip压缩包
  12. Mybatis Plus 3 oracle 自增序列
  13. excel如何去重统计户数_Excel如何去重,然后统计数据?_excel提取数据并去重
  14. elementary 安装常用软件
  15. 微机原理与接口 极其基础知识点
  16. 余弦相似度-C#代码实现
  17. 无力吐槽的废酱的几个问题
  18. python大众点评霸王餐_python抓取大众点评商户信息
  19. PDF文档分割简单方法
  20. 使用autoware的calibration_toolkit联合标定双目相机和激光雷达(ZED and VLP-16)

热门文章

  1. windows写文件到ubuntu之samba
  2. 页面的访问速度如何提高?(我所知道的,哪位高手有其它的高见,敬请提醒....)...
  3. TypeScript BigInt
  4. Hibernate初学者教程
  5. Apache Tomcat 9 用户指南
  6. C语言,期末复习之编写程序返回三个整数中的中间数
  7. 初识人工智能(一):数据分析(二):numpy科学计算基础库(一)
  8. 多线程同步 通过实现Runnable的示例
  9. CCF 201503-2 数字排序
  10. Linux入门学习(二)