您的位置:首页 > Web前端

leetcode-530. Minimum Absolute Difference in BST

2017-11-25 10:45 435 查看
530. Minimum Absolute Difference in BST

Given a binary search tree with non-negative values, find the minimum absolute
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.

题意:找出二叉搜索树中,结点差值最小的差值。
解法:因为要找出结点差值最小的值,本来是要遍历N*N才能找到的,但是因为是二叉搜索树,中序遍历的结构就是有序的,最小差值肯定是相邻结点的差值中的一个,所以只要O(n)就可以了。

public class Solution {
int min = Integer.MAX_VALUE;
Integer prev = null;

public int getMinimumDifference(TreeNode root) {
if (root == null) return min;

getMinimumDifference(root.left);

if (prev != null) {
min = Math.min(min, root.val - prev);
}
prev = root.val;

getMinimumDifference(root.right);

return min;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode-java 题解