//本文内容来自StarSight,欢迎访问。
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.
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int getMinimumDifference(TreeNode root) {
List<Integer> list = new ArrayList<>();
array(root,list);
int gap = 65535,temp;
for(int i=0;i<list.size()-1;i++){
temp = list.get(i+1)-list.get(i);
if(gap>temp)
gap = temp;
}
return gap;
}
public void array(TreeNode root , List<Integer> list){
if(root.left!=null){
array(root.left,list);
}
list.add(root.val);
if(root.right!=null){
array(root.right,list);
}
}
}
常规题,二叉搜索树。
运行时间20ms,50%左右。