LeetCode: 503.Minimum Absolute Difference in BST
2017-02-26 13:40
459 查看
LeetCode: 503.Minimum Absolute Difference in BST
contest21的题目。题目其实刚好和前天做的LeetCode 98. Validate Binary Search Tree是类似的。
简单来说就是问你,规定difference是排序后的前后结点差的绝对值,问最小的绝对值差。
其实就是中序遍历,然后保存当前最小值和前一个结点的值用于下一次比较。很快地写出递归解法:
递归
时间复杂度是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: TreeNode *pre = NULL; int minabsdiff = -1; public: int getMinimumDifference(TreeNode* root) { if(!root) return 0; getMinimumDifference(root->left); if( pre ) if(minabsdiff < 0 || minabsdiff > abs(root->val - pre->val)) minabsdiff = abs(root->val - pre->val); pre = root; getMinimumDifference(root->right); return minabsdiff; } };
第一次玩这LeetCode的contest,粗心提交了两次小错误版本,所以罚了1200s……大概要注意的是,因为minabsdiff有可能到INT_MAX,我干脆一开始给负数,好直接保存第一个有效的absdiff。
相关文章推荐
- [leetcode: Python]530. Minimum Absolute Difference in BST
- [leetcode] 530. Minimum Absolute Difference in BST
- LeetCode 530. Minimum Absolute Difference in BST (二叉搜索树中最小绝对差)
- 【LeetCode】Minimum Absolute Difference in BST 解题报告
- [LeetCode]530. Minimum Absolute Difference in BST(BST的最小绝对差)
- leetcode-530. Minimum Absolute Difference in BST
- LeetCode 530. Minimum Absolute Difference in BST
- LeetCode | 530. Minimum Absolute Difference in BST
- Leetcode 530 Minimum Absolute Difference in BST
- LeetCode Minimum Absolute Difference in BST
- LeetCode 530. Minimum Absolute Difference in BST
- leetcode 530. Minimum Absolute Difference in BST(easy)
- leetcode 530. Minimum Absolute Difference in BST
- 【Leetcode】530. Minimum Absolute Difference in BST
- LeetCode-530. Minimum Absolute Difference in BST (Java)
- LeetCode-530. Minimum Absolute Difference in BST
- LeetCode 530. Minimum Absolute Difference in BST
- leetcode 530. Minimum Absolute Difference in BST
- [LeetCode] 530. Minimum Absolute Difference in BST
- leetcode-Minimum Absolute Difference in BST