leet-code/validate-binary-search-tree/sol.go

29 lines
552 B
Go

package main
type TreeNode struct {
Val int
Left *TreeNode
Right *TreeNode
}
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func isValidSubBST(root *TreeNode, min, max int) bool {
if root == nil {
return true
}
if root.Val < min || root.Val > max {
return false
}
return isValidSubBST(root.Left, min, root.Val-1) && isValidSubBST(root.Right, root.Val+1, max)
}
func isValidBST(root *TreeNode) bool {
return isValidSubBST(root, -1<<31, 1<<31)
}