题解 | #二叉搜索树最小差值#

二叉搜索树最小差值

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);
	}
	
}

#算法题#
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务