目录

  • 题目
  • 思路1:递归遍历得到result数组(单调递增),然后对数组进行前后差分,取最小值
  • 思路2:不用数组,进行优化
  • 思路3、回顾迭代法求解

题目

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

思路1:递归遍历得到result数组(单调递增),然后对数组进行前后差分,取最小值

/*** 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 traversal(TreeNode* cur , vector<int>& vec){if(cur == NULL) return;traversal(cur->left,vec);vec.push_back(cur->val);traversal(cur->right,vec);}int getMinimumDifference(TreeNode* root) {vector<int> result;traversal(root,result);//递增序列,所以绝对值的最小值就在差分数组中int Minimum =INT_MAX;for(int i =1;i<result.size();i++){Minimum = min(result[i]-result[i-1],Minimum);}return Minimum;}
};

不过这样的效率感觉比较低。

思路2:不用数组,进行优化

/*** 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 Minimum =INT_MAX;   TreeNode* pre =NULL;        //用来记录前一个结点void traversal(TreeNode* cur){if(cur == NULL) return;traversal(cur->left);if(pre != NULL ) Minimum = min(cur->val-pre->val,Minimum);pre = cur;  //更新结点traversal(cur->right);}int getMinimumDifference(TreeNode* root) {traversal(root);return Minimum;}
};

思路3、回顾迭代法求解

/*** 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) {stack<TreeNode*> st;int Minimum =INT_MAX; TreeNode* cur = root;TreeNode* pre = NULL;   while(!st.empty() || cur!=NULL){if(cur!=NULL){st.push(cur);cur = cur->left;}else{cur = st.top();st.pop();if(pre != NULL ) Minimum = min(cur->val-pre->val,Minimum);pre = cur;  //更新结点cur = cur->right;}} return Minimum;}
};

LeetCode 530. 二叉搜索树的最小绝对差 思考分析相关推荐

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

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

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

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

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

    题目链接:力扣 思路: 中序遍历 二叉搜索树中序遍历是递增序列,要找最小绝对差,就是要找按照中序遍历,后一个数-前一个数的最小值 1.用vector数组保存中序遍历序列 class Solution ...

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

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

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

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

  6. LeetCode 530二叉搜索树的最小绝对值差-简单

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

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

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

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

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

  9. 怎样将树的中序遍历的数输入到一个数组中_LeetCode 530.二叉搜索树的最小绝对差

    题目 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值. 提示: + 树中至少有 2 个节点. + 本题与783相同 题目链接 示例 输入:13/2输出: 1 题目分析 ...

最新文章

  1. 拾人牙慧篇之———QQ微信的第三方登录实现
  2. java 日志_跟着Tomcat学编码:Java 原生日志框架分析
  3. 移动硬盘与电脑连接后 计算机中找不到,移动硬盘联接上电脑,可是打开我的电脑却找不到移动硬盘。...
  4. kafka java_Kafka 使用Java实现数据的生产和消费demo
  5. 谷歌浏览器出现“远程计算机访问失败问题”
  6. android 抓log暗码,「有用功」强大的安卓暗码命令 你都知道吗?
  7. 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  8. Linux下使用exec命令将文件与文件描述符关联
  9. java 导出Excel 转图片地址为图片
  10. Linux驱动入门总结
  11. 书摘—松下幸之助全传
  12. Easy Mobile插件之Advertising
  13. unity 安卓apk安装后的文件路径
  14. 通用计数器的检定方案
  15. 四种常见的post请求中的参数形式
  16. 软件工程和计算机科学排名,计算机科学与技术与软件工程专业排名(15页)-原创力文档...
  17. [转]金属加工工艺基础知识
  18. 摄像头模组简介与质量管控(连载三)
  19. 机器人教育在学校普及
  20. 宝马将自动驾驶和打车服务结合,最快明年在德国上路

热门文章

  1. Bash脚本教程之命令提示符
  2. 推荐几款爬虫软件与无需编程的数据分析工具
  3. java gif_使用Java来处理GIF图片
  4. extjs tree 遍历树节点并设置选中
  5. Xcode 升级后,常常遇到的遇到的警告、错误,解决方法(转)
  6. vue 导出html
  7. PJMEDIA之录音器的使用(capture sound to avi file)
  8. centos7输入法,非root用户无法使用
  9. noip退役之路--祝福
  10. python作业:高级FTP程序