问题:
方法: 搜索二叉树具有一个特点,中序遍历时节点单调递增,所以如果不满足这一条件则不是合法的搜索二叉树。
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>) {
}
有问题随时沟通
