如何使用递归函数修复leetcode98验证二进制搜索树?

时间:2019-04-15 05:26:56

标签: scala recursion

enter image description here enter image description here

这个问题的重点是两个变种。在LeetCode下次使用此函数之前,不能立即初始化'last'和'isFirst'。他们保存最后一个值,而不是再次初始化。 我不能用这个想法来回答这个问题。 帮我 ! 英语不好,对不起!

/**
 * Definition for a binary tree node.
 * class TreeNode(var _value: Int) {
 *   var value: Int = _value
 *   var left: TreeNode = null
 *   var right: TreeNode = null
 * }
 */
object Solution {
   var last: Double = -Double.MaxValue
  var isFirst = true

  def isValidBST(root: TreeNode): Boolean = {

    if (root == null) {

      return true
    }
    if (isValidBST(root.left)) {
      if (last < root.value || isFirst) {
        isFirst = false
        last = root.value
        return isValidBST(root.right)
      }
    }
    last = -Double.MaxValue
    isFirst = true
    false
  }
}

0 个答案:

没有答案