mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 19:44:45 +08:00
添加 0098.验证二叉搜索树.md Scala版本
This commit is contained in:
@ -589,7 +589,50 @@ function isValidBST(root: TreeNode | null): boolean {
|
||||
};
|
||||
```
|
||||
|
||||
## Scala
|
||||
|
||||
辅助数组解决:
|
||||
```scala
|
||||
object Solution {
|
||||
import scala.collection.mutable
|
||||
def isValidBST(root: TreeNode): Boolean = {
|
||||
var arr = new mutable.ArrayBuffer[Int]()
|
||||
// 递归中序遍历二叉树,将节点添加到arr
|
||||
def traversal(node: TreeNode): Unit = {
|
||||
if (node == null) return
|
||||
traversal(node.left)
|
||||
arr.append(node.value)
|
||||
traversal(node.right)
|
||||
}
|
||||
traversal(root)
|
||||
// 这个数组如果是升序就代表是二叉搜索树
|
||||
for (i <- 1 until arr.size) {
|
||||
if (arr(i) <= arr(i - 1)) return false
|
||||
}
|
||||
true
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
递归中解决:
|
||||
```scala
|
||||
object Solution {
|
||||
def isValidBST(root: TreeNode): Boolean = {
|
||||
var flag = true
|
||||
var preValue:Long = Long.MinValue // 这里要使用Long类型
|
||||
|
||||
def traversal(node: TreeNode): Unit = {
|
||||
if (node == null || flag == false) return
|
||||
traversal(node.left)
|
||||
if (node.value > preValue) preValue = node.value
|
||||
else flag = false
|
||||
traversal(node.right)
|
||||
}
|
||||
traversal(root)
|
||||
flag
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
-----------------------
|
||||
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>
|
||||
|
Reference in New Issue
Block a user