private ArrayList<Integer> nodes = new ArrayList<Integer>();
public int getMinimumDifference(TreeNode root) {
traverse(root); // 中序遍历,并将结果按顺序存放起来,根据BST的性质
int min = Integer.MAX_VALUE;
for(int i = 0; i<nodes.size()-1; i++) {
int abs = Math.abs(nodes.get(i) - nodes.get(i+1));
if( min>abs) {
min = abs;
}
}
return min;
}
private void traverse(TreeNode root){
if(root!=null){
traverse(root.left);
nodes.add(root.val);
traverse(root.right);
}
}
leetcode
最新推荐文章于 2017-03-16 21:51:52 发布