设为首页 加入收藏

TOP

验证二叉搜索树的golang实现
2018-12-16 22:17:23 】 浏览:118
Tags:验证 搜索 golang 实现

给定一个二叉树,判断其是否是一个有效的二叉搜索树。

一个二叉搜索树具有如下特征:

  • 节点的左子树只包含小于当前节点的数。
  • 节点的右子树只包含大于当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。
输入:
    2
   / \
  1   3
输出: true
输入:
    5
   / \
  1   4
     / \
    3   6
输出: false
解释: 输入为: [5,1,4,null,null,3,6]。
     根节点的值为 5 ,但是其右子节点值为 4

我们只要判断每个子树中的左孩子小于根节点,右孩子大于根节点

还有一个要注意的是,空树也是二叉搜索树

func isValidBST(root *TreeNode) bool {
    return
 
			
"> isValid(root, math.MinInt64, math.MaxInt64) } func isValid(root
*TreeNode, min int, max int) bool { if root == nil { return true } if root.Val <= min { return false } if root.Val >= max { return false } return isValid(root.Left, min, root.Val) && isValid(root.Right, root.Val, max) }

 


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇GoLand(一)安装 下一篇三数之和的golang实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(217) }