package main type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func main() { } func isValidBST(root *TreeNode) bool { var helper func(root *TreeNode) []int helper = func(root *TreeNode) []int { if root == nil { return []int{} } tmp := make([]int, 0) tmp = append(tmp, helper(root.Left)...) tmp = append(tmp, root.Val) tmp = append(tmp, helper(root.Right)...) return tmp } res := helper(root) for i := 0; i < len(res); i++ { if i == 0 { continue } if res[i-1] >= res[i] { return false } } return true }