题解 | #二叉搜索树最小差值#
二叉搜索树最小差值
https://www.nowcoder.com/practice/f8ac976b49bd450887b9281f315186c7
public class MinDifference {
private List<Integer> list = new ArrayList<Integer>();
public int minDifference(TreeNode root) {
// write code here
// 二叉搜索树中序遍历之后变成集合是从小到大的,所以先变成集合
creteList(root);
// 动态规划找出最小值
int min = list.get(1)-list.get(0);
for (int i = 1; i < list.size(); i++) {
int nowMin = Math.abs(list.get(i)-list.get(i-1));
if (nowMin < min) {
min = nowMin;
}
}
return min;
}
public void creteList(TreeNode root) {
if (root == null) {
return ;
}
creteList(root.left);
list.add(root.val);
creteList(root.right);
}
}
#算法题#
深信服公司福利 759人发布