parent
d6770c07e3
commit
dc03975acd
|
|
@ -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版本
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue