LeetCode 530 Minimum Absolute Difference in BST(BST中序遍历)
2017-04-09 11:15
387 查看
Given a binary search tree with non-negative values, find the minimum absolute
difference between values of any two nodes.
Example:
Note: There are at least two nodes in this BST.
题目大意:给出一个至少有2个节点且节点中数字均为非负整数的BST,输出任意两个节点之差的最小绝对值。
解题思路:因为BST的中序遍历会按从小到大的顺序遍历节点,所以可以把中序遍历的结果存到数组里,然后比较数组中相邻两数字差的绝对值,就可以得到差的最小绝对值。
代码如下:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
#define maxn 100000
int arr[maxn]={0},cnt;
void inorderTraval(struct TreeNode* root)
{
if(!root) return ;
inorderTraval(root->left);
arr[cnt++] = root->val;
inorderTraval(root->right);
}
int getMinimumDifference(struct TreeNode* root) {
int min = 1e10;
inorderTraval(root);
for(int i = 1;i < cnt;i++){
int temp = arr[i] - arr[i-1];
if(min > temp) min = temp;
}
cnt = 0;
return min;
}
difference between values of any two nodes.
Example:
Input: 1 \ 3 / 2 Output: 1 Explanation: The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).
Note: There are at least two nodes in this BST.
题目大意:给出一个至少有2个节点且节点中数字均为非负整数的BST,输出任意两个节点之差的最小绝对值。
解题思路:因为BST的中序遍历会按从小到大的顺序遍历节点,所以可以把中序遍历的结果存到数组里,然后比较数组中相邻两数字差的绝对值,就可以得到差的最小绝对值。
代码如下:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
#define maxn 100000
int arr[maxn]={0},cnt;
void inorderTraval(struct TreeNode* root)
{
if(!root) return ;
inorderTraval(root->left);
arr[cnt++] = root->val;
inorderTraval(root->right);
}
int getMinimumDifference(struct TreeNode* root) {
int min = 1e10;
inorderTraval(root);
for(int i = 1;i < cnt;i++){
int temp = arr[i] - arr[i-1];
if(min > temp) min = temp;
}
cnt = 0;
return min;
}
相关文章推荐
- LeetCode 530 Minimum Absolute Difference in BST
- Leetcode 530 Minimum Absolute Difference in BST
- [LeetCode] Minimum Absolute Difference in BST 二叉搜索树的最小绝对差
- 【LeetCode】Minimum Absolute Difference in BST 解题报告
- LeetCode Minimum Absolute Difference in BST
- leetcode[Minimum Absolute Difference in BST]//待整理多种解法
- leetcode Minimum Absolute Difference in BST 二叉搜索树中的最小差
- Leetcode 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
- LeetCode-530. Minimum Absolute Difference in BST
- leetcode 530. Minimum Absolute Difference in BST
- Minimum Absolute Difference in BST问题及解法
- [LeetCode]530. Minimum Absolute Difference in BST
- Minimum Absolute Difference in BST
- [leetcode: Python]530. Minimum Absolute Difference in BST
- [leetcode]-530. Minimum Absolute Difference in BST
- LeetCode 530. Minimum Absolute Difference in BST
- Minimum Absolute Difference in BST