mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-12 05:20:59 +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)
|
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版本
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user