mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-11 13:00:22 +08:00
增加 0098.验证二叉搜索树 go版 (增加中序遍历解题法)
增加中序遍历解题法
This commit is contained in:
@ -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)
|
||||
}
|
||||
```
|
||||
```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版本
|
||||
|
||||
|
Reference in New Issue
Block a user