1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */
var pre *TreeNode
func isValidBST(root *TreeNode) bool { sign := true
pre = nil convertToBST(root, &sign) return sign }
func convertToBST(root *TreeNode, sign *bool) { if root != nil && *sign == true { convertToBST(root.Left, sign)
if pre != nil && pre.Val >= root.Val { *sign = false }
pre = root
convertToBST(root.Right, sign) } }
|