博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode]@python 98. Validate Binary Search Tree
阅读量:4982 次
发布时间:2019-06-12

本文共 1133 字,大约阅读时间需要 3 分钟。

题目链接

题目原文

Given a binary tree, determine if it is a valid binary search tree (BST).

Assume a BST is defined as follows:

The left subtree of a node contains only nodes with keys less than the node's key.

The right subtree of a node contains only nodes with keys greater than the node's key.
Both the left and right subtrees must also be binary search trees.

题目大意

给定一棵二叉树,判断这棵二叉树是否有效地二叉搜索树

解题思路

递归:棵树是二叉查找树,那么左子树的节点值一定处于(负无穷,root.val)这个范围内,右子树的节点值一定处于(root.val,正无穷)这个范围内。(注意边界值,负无穷和正无穷换成浮点型的极值)

代码

# Definition for a binary tree node.class TreeNode(object):    def __init__(self, x):        self.val = x        self.left = None        self.right = Noneclass Solution(object):    def isValidBST(self, root):        """        :type root: TreeNode        :rtype: bool        """        return self.isValid(root, -2147483648.1, 2147483647.1)    def isValid(self, root, min, max):        if not root:            return True        if root.val <= min or root.val >= max:            return False        return self.isValid(root.left, min, root.val) and self.isValid(root.right, root.val, max)

转载于:https://www.cnblogs.com/slurm/p/5221590.html

你可能感兴趣的文章
genymotion下载出现Unable to create virtual device,Server returned HTTP status code 0.
查看>>
Android 下拉刷新框架实现
查看>>
ViewPager + Fragment实现滑动标签页
查看>>
Spring与Hibernate实现增删改查两方法
查看>>
Genymotion 插件在 Eclipse 和 Android Studio 中点击后无法初始化 Initialize Engine: failed 解决方法...
查看>>
1R安装环境
查看>>
初学Python——Socket网络编程
查看>>
Linux 如何实现 VLAN - 每天5分钟玩转 OpenStack(12)
查看>>
Gym - 101252H
查看>>
2019年2月15日,复习
查看>>
线性布局Row和Column
查看>>
关键路径(代码讲解)- 数据结构和算法68
查看>>
if语句三种格式
查看>>
CentOS 7 单用户模式修改root密码
查看>>
Linux DHCP原理
查看>>
Thread.currentThread()和this的区别——《Java多线程编程核心技术》
查看>>
mysql 5.1 Data 文件夹路径
查看>>
delegate的参数也可泛型【简单源码示例】
查看>>
Mycat SqlServer 技术栈 实现 主从分离
查看>>
为何要学编程?如何学编程?用什么语言最好?有什么好书?
查看>>