美文网首页
LeetCode之Minimum Absolute Differ

LeetCode之Minimum Absolute Differ

作者: 糕冷羊 | 来源:发表于2019-09-30 16:33 被阅读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>) {

}

有问题随时沟通

具体代码实现可以参考Github

相关文章

网友评论

      本文标题:LeetCode之Minimum Absolute Differ

      本文链接:https://www.haomeiwen.com/subject/mldmuctx.html