package GetMinimumDifference class TreeNode(_value: Int = 0, _left: TreeNode = null, _right: TreeNode = null) { var value: Int = _value var left: TreeNode = _left var right: TreeNode = _right } // https://leetcode.com/problems/minimum-absolute-difference-in-bst/description/ object Solution { def getMinimumDifference(root: TreeNode): Int = { def traverse(root: TreeNode): List[Int] = { if (root == null) List() else traverse(root.left) ++ List(root.value) ++ traverse(root.right) } val TRAVERSAL: List[Int] = traverse(root) TRAVERSAL .zip(TRAVERSAL.tail) .map(pr => pr._2 - pr._1) .min } }