Leetcode 98 Validate Binary Search Tree
2016-06-20 15:33
507 查看
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.
Example 1:
Binary tree
Example 2:
Binary tree
存储左边与右边的最大与最小值和root比较
inorder traversal过程中进行比较
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.
Example 1:
2 / \ 1 3
Binary tree
[2,1,3], return true.
Example 2:
1 / \ 2 3
Binary tree
[1,2,3], return false.
存储左边与右边的最大与最小值和root比较
class Solution(object): def isValidBST(self,root): return self.isValidBST2(root, float('-inf'), float('inf')) def isValidBST2(self, root, minval, maxval): if not root: return True if root.val >= maxval or root.val <= minval: return False return self.isValidBST2(root.left, minval, root.val) and self.isValidBST2(root.right, root.val, maxval)
inorder traversal过程中进行比较
def is_valid_bst(root) ans, stack = [], [[false,root]] while not stack.empty? visit, node = stack.pop if node stack << [false,node.right] << [true,node] << [false,node.left] if not visit if visit if ans.empty? or node.val > ans[-1] ans << node.val else return false end end end end true end
相关文章推荐
- springMVC注解优化
- 有效运维的 on-call 机制
- 四. 文本编程--Windows编程课程学习笔记
- c#判断字符串是否为汉字
- 数组------最小的k个数
- 单链表的插入与删除
- Android中常见的正则表达式工具类
- [置顶] 类微信朋友圈图片放大效果,点击图片放大动画
- runtime学习之- 关联(association),在分类中添加属性!
- linux网络编程----->高并发--->多线程并发服务器
- OpenGL Frame BufferObject(FBO)
- linux 查看、修改用户及密码过期时间
- mysql索引理解
- 实现简单的自定义音乐播放器
- css3中-webkit-text-size-adjust详解
- 学习总结 java 数据库 ResultSet 、PreparedStatement
- Python爬虫实践(四):一些不常用设置
- iOS 语音合成 AVSpeechSynthesizer详解
- 如何实现ActiveMq的Topic的持久订阅
- js Date 日期格式化