LeetCode Algorithm 530. 二叉搜索树的最小绝对差
Posted _Alex_007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 530. 二叉搜索树的最小绝对差相关的知识,希望对你有一定的参考价值。
Ideas
前几天一直刷链表题,这道题刚看到的时候还有点懵,第一个想到的方法竟然是全排列,脑子瓦特了。
二叉树的题目基本上都得跟(前/中/后)序遍历扯点关系,一看是没注意二叉搜索树这个信息,导致一直没想明白,还是从例子中发现这是二叉搜索树的。
二叉搜索树的中序遍历是一个升序的序列,那么所有元素的最小绝对差其实就是相邻两个元素差的最小值。
然后直接默写二叉树中序遍历模板,修改一下输出逻辑部分就OK了。
Code
C++
class Solution
public:
int middle_order_traversal(TreeNode* node)
if (!node)
return 0;
int pre = -1, ans = INT_MAX;
stack<TreeNode*> sta;
TreeNode* item = node;
while (!sta.empty() || item != nullptr)
if (item != nullptr)
sta.push(item);
item = item->left;
else
item = sta.top();
if (pre == -1)
pre = item->val;
else
ans = min(ans, item->val - pre);
pre = item->val;
sta.pop();
item = item->right;
return ans;
int getMinimumDifference(TreeNode* root)
return middle_order_traversal(root);
;
以上是关于LeetCode Algorithm 530. 二叉搜索树的最小绝对差的主要内容,如果未能解决你的问题,请参考以下文章
⭐算法入门⭐《二叉树 - 二叉搜索树》简单07 —— LeetCode 530. 二叉搜索树的最小绝对差