题解 | #判断是不是二叉搜索树# | Golang
判断是不是二叉搜索树
https://www.nowcoder.com/practice/a69242b39baf45dea217815c7dedb52b
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)
}
查看1道真题和解析