Algorithm 用于验证二进制搜索树的Scala程序
我在使用递归运行二进制搜索树验证代码时遇到一些错误。任何人都可以查看该方法并确认它是否是一种优化的验证方法吗 我还需要一些输入来解决下面的错误 错误:需要标识符,但找到“val”,表达式的开头非法Algorithm 用于验证二进制搜索树的Scala程序,algorithm,scala,data-structures,Algorithm,Scala,Data Structures,我在使用递归运行二进制搜索树验证代码时遇到一些错误。任何人都可以查看该方法并确认它是否是一种优化的验证方法吗 我还需要一些输入来解决下面的错误 错误:需要标识符,但找到“val”,表达式的开头非法 object Solution { def isValidBST(root: TreeNode): Boolean = { if (root == null) true isValidBST(root.left, Double.MAX_VALUE, root.val) &am
object Solution {
def isValidBST(root: TreeNode): Boolean = {
if (root == null) true
isValidBST(root.left, Double.MAX_VALUE, root.val) &&
isValidBST(root.right, root.val, Double.MAX_VALUE)
}
private def isValidBST(node: TreeNode, min: Double, max: Double): Boolean = {
if (node == null) true
if (node.val <= min || node.val >= max) false
isValidBST(node.left, min, node.val) && isValidBST(node.right,node.val, max)
}
}
val是一个保留字。不能将其用作变量或数据成员名称。
它是Double.MaxValue,不是Double.MAX\u VALUE。
递归没有退出路径,因为if表达式没有else子句。
请尝试创建一个-1,因为您不仅没有回答我对您的评论,而且还创建了一个问题,这个问题也有相同的问题,这使得试图帮助实现算法的人非常困惑,因为Scala语言的使用存在许多基本问题。