LeetCode之Validate Binary Search Tree(Kotlin)

195 阅读1分钟

问题:


方法: 搜索二叉树具有一个特点,中序遍历时节点单调递增,所以如果不满足这一条件则不是合法的搜索二叉树。

class ValidateBinarySearchTree {
    fun isValidBST(root: TreeNode?): Boolean {
        val list = mutableListOf<Int>()
        traverse(root, list)
        for(index in 0 until list.lastIndex) {
            if (list[index] >= list[index+1]) {
                return false
            }
        }
        return true
    }

    private fun traverse(root: TreeNode?, list: MutableList<Int>) {
        if (root == null) {
            return
        }
        traverse(root.left, list)
        list.add(root.`val`)
        traverse(root.right, list)
    }
}

fun main(args: Array<String>) {

}

有问题随时沟通

具体代码实现可以参考Github