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

Posted _Alex_007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 530. 二叉搜索树的最小绝对差相关的知识,希望对你有一定的参考价值。

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. 二叉搜索树的最小绝对差的主要内容,如果未能解决你的问题,请参考以下文章

leetcode530 二叉树的最小绝对差

⭐算法入门⭐《二叉树 - 二叉搜索树》简单07 —— LeetCode 530. 二叉搜索树的最小绝对差

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

leetcode刷穿二叉树

[leetcode-530-Minimum Absolute Difference in BST]

Leetcode 530. Minimum Absolute Difference in BST