验证二叉查找树
https://www.lintcode.com/problem/95/description?utm_source=sc-cheatsheet-cyc
tree = {-1}true二叉树如下(仅有一个节点): -1这是二叉查找树。tree = {2,1,4,#,#,3,5}Last updated
https://www.lintcode.com/problem/95/description?utm_source=sc-cheatsheet-cyc
tree = {-1}true二叉树如下(仅有一个节点): -1这是二叉查找树。tree = {2,1,4,#,#,3,5}Last updated
true 二叉树如下: 2 / \ 1 4 / \ 3 5这是二叉查找树。```python
from lintcode import (
TreeNode,
)
"""
Definition of TreeNode:
class TreeNode:
def __init__(self, val):
self.val = val
self.left, self.right = None, None
"""
class Solution:
"""
@param root: The root of binary tree.
@return: True if the binary tree is BST, or false
"""
def is_valid_b_s_t(self, root: TreeNode) -> bool:
# write your code here
return self.helper(root, float('inf'), float('-inf'))
def helper(self, root: TreeNode, upper: int, lower:int) -> bool:
if not root:
return True
if root.val >= upper or root.val <= lower:#
return False
return self.helper(root.left, root.val, lower) and self.helper(root.right, upper, root.val)
```