题解 | #二叉搜索树最小差值#
二叉搜索树最小差值
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); } }
#算法题#