package main import ( "math" . "nc_tools" ) /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return bool布尔型 */ func isValidBST( root *TreeNode ) bool { ans := true pre := math.MaxInt midOrder(root, &pre, &ans) return ans } func midOrder(node *TreeNode, pre *int, ans *bool) { if node == nil { return } midOrder(node.Left, pre, ans) if *pre != math.MaxInt { if node.Val < *pre { *ans = false } } *pre = node.Val midOrder(node.Right, pre, ans) }