微信改版,加星标不迷路!

每日一算法-二叉搜索树节点最小距离

作者:阿广

阅读目录

  • 1 题目

  • 2 解析

1 题目

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

示例:

输入: root = [4,2,6,1,3,null,null]输出: 1解释:注意,root是树结点对象(TreeNode object),而不是数组。给定的树 [4,2,6,1,3,null,null] 可表示为下图:4/   \2      6/ \    1   3  最小的差值是 1, 它是节点1和节点2的差值, 也是节点3和节点2的差值。

注意:

? 二叉树的大小范围在 2 到 100

? 二叉树总是有效的,每个节点的值都是整数,且不重复。

2 解析


本题属于简单题,整体的思路为将二叉树的所有节点使用中序遍历的方法,将其全部节点依次加入到vector res变量中(此时res中为从小到大的排序),然后使用vector m变量依次接受res[i]-res[i-1];最后对m进行从小到大排序,返回m[0]即可;

2.1

将二叉树的所有节点使用中序遍历的方法,将其全部节点依次加入到vector res变量中(此时res中为从小到大的排序)

void pre(vector<int>& res,TreeNode* root){       if(root!=NULL){           pre(res,root->left);           res.push_back(root->val);           pre(res,root->right);       }   }

2.2

然后使用vector m变量依次接受res[i]-res[i-1];

vector<int> m;for(int i = 1; i < res.size() ; i++){     m.push_back(res[i]-res[i-1]);}

2.3

最后对m进行从小到大排序,返回m[0]即可;

int si = m.size();sort(m.begin(),m.end());return m[0];

2.4

完整代码

/** * 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 pre(vector<int>& res,TreeNode* root){       if(root!=NULL){           pre(res,root->left);           res.push_back(root->val);           pre(res,root->right);       }   }    int minDiffInBST(TreeNode* root) {        vector<int> res;        pre(res,root);        vector<int> m;        for(int i = 1; i < res.size() ; i++){            m.push_back(res[i]-res[i-1]);        }        int si = m.size();        sort(m.begin(),m.end());        return m[0];    }};

今日问题

你会选择读博士吗?

准备从事教学科研工作还是去企业工作?

为什么?

打卡格式:打卡第n天,答:...

为什么打卡?戳下面你就知道了!

21/天/养/一/个/好/习/惯

【每日一算法】二叉搜索树结点最小距离相关推荐

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

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

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

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

  3. leetcode - 783. 二叉搜索树结点最小距离

    给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值. 示例: 注意: 二叉树的大小范围在 2 到 100. 二叉树总是有效的,每个节点的值都是整数,且不重复. ------ 解题思 ...

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

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

  5. 数据结构与算法:二叉搜索树

    ✨数据结构与算法:二叉搜索树

  6. 高级数据结构与算法 | 二叉搜索树(Binary Search Tree)

    文章目录 二叉搜索树的概念 二叉搜索树的作用 排序 查找 实现思路 查找 插入 删除 删除.拷贝等 代码实现 K模型 KV模型 二叉搜索树的概念 二叉搜索树又叫做二叉排序树,他是一个具有以下特性的二叉 ...

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

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

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

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

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

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

最新文章

  1. 意念控制成现实:不开口,不动手,“瘫着”就能打游戏
  2. php session redis 配置
  3. 第一次搭建阿里云服务器
  4. 微软相关的开发资源列表(update)
  5. .NET Core 在中国的现状调研
  6. 原生类型的autoboxing和auto-unboxing
  7. php识别地址,实现地址自动识别实例(PHP)
  8. 计算机的发展英语600词,程序员必备的600个英语词汇
  9. OpenCV-python学习笔记(三)——histograms直方图
  10. 学创杯创业模拟大赛攻略_蝉联冠军!哈尔滨理工大学连续两届获得“学创杯”一等奖...
  11. 如何判断cin输入结束~
  12. anaconda装完没反应
  13. linkedin android,如何在android中登录linkedin?
  14. 富士施乐Fuji Xerox DocuCentre-III C6500 驱动
  15. 远程服务器网刻系统,网刻-wu123119-ChinaUnix博客
  16. ODAC for delphi 安装
  17. 【k8s】kubernetes编写自己的operator(operator-sdk:v1.xxx)
  18. 5-6 uniapp 图片压缩
  19. html输入密码访问指定页面,三种方法使HTML单页面输入密码才能访问
  20. 创业起步阶段需要注意的几点

热门文章

  1. 年收入百万美元AI科学家的烦恼与思考
  2. 暴雨之后,评估与重建可以用这个数据集
  3. 看完 50000 张专辑封面,AI 设计师开始疯狂输出
  4. 如何提高模型性能?这四大方法值得尝试 | CSDN 博文精选
  5. 管理7k+工作流,月运行超10000万次,Lyft开源的Flyte平台意味着什么?
  6. PyTorch实现L2和L1正则化的方法 | CSDN博文精选
  7. 30+博士、100+硕士整理的超全深度强化学习资源清单
  8. 深度学习在人脸检测中的应用 | CSDN 博文精选
  9. 快速构建深度学习图像数据集,微软Bing和Google哪个更好用?
  10. 谁是AI行业最受关注的人?未来图灵发布《AI明星企业家热搜榜》