增加 0098.验证二叉搜索树 go版 (增加中序遍历解题法)

增加中序遍历解题法
This commit is contained in:
NevS
2021-06-29 00:20:13 +08:00
committed by GitHub
parent d6770c07e3
commit dc03975acd

View File

@ -376,6 +376,28 @@ func isBST(root *TreeNode, min, max int) bool {
return isBST(root.Left, min, root.Val) && isBST(root.Right, root.Val, max) return isBST(root.Left, min, root.Val) && isBST(root.Right, root.Val, max)
} }
``` ```
```go
// 中序遍历解法
func isValidBST(root *TreeNode) bool {
// 保存上一个指针
var prev *TreeNode
var travel func(node *TreeNode) bool
travel = func(node *TreeNode) bool {
if node == nil {
return true
}
leftRes := travel(node.Left)
// 当前值小于等于前一个节点的值返回false
if prev != nil && node.Val <= prev.Val {
return false
}
prev = node
rightRes := travel(node.Right)
return leftRes && rightRes
}
return travel(root)
}
```
JavaScript版本 JavaScript版本