LeetCode之Minimum Absolute Differ
2019-09-30 本文已影响0人
糕冷羊
问题:
方法:
思路是通过中序遍历建立有序的节点list,即节点是从小到大保存在list中的。第二步通过遍历list比较相邻两个元素的diff,最后即可以输出最小的diff。
具体实现:
class MinimumAbsoluteDifferenceInBST {
class TreeNode(var `val`: Int) {
var left: TreeNode? = null
var right: TreeNode? = null
}
fun getMinimumDifference(root: TreeNode?): Int {
val list = mutableListOf<TreeNode>()
dfs(root, list)
var minDiff = Int.MAX_VALUE
for (index in 1..list.lastIndex) {
val diff = list[index].`val` - list[index - 1].`val`
if (diff < minDiff) {
minDiff = diff
}
}
return minDiff
}
private fun dfs(root: TreeNode?, list: MutableList<TreeNode>) {
if (root == null) {
return
} else {
dfs(root.left, list)
list.add(root)
dfs(root.right, list)
}
}
}
fun main(args: Array<String>) {
}
有问题随时沟通