validate-binary-search-tree

This commit is contained in:
Gleb Koval 2022-06-10 13:58:11 +01:00
parent 93374f7414
commit ca606b7be8
Signed by: cyclane
GPG Key ID: 15E168A8B332382C
1 changed files with 28 additions and 0 deletions

View File

@ -0,0 +1,28 @@
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)
}