首页 > 代码库 > Validate Binary Search Tree Leetcode Python
Validate Binary Search Tree Leetcode Python
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.
根据定义http://en.wikipedia.org/wiki/Binary_search_tree
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.
The left and right subtree each must also be a binary search tree.
Each node can have up to two successor nodes.
There must be no duplicate nodes.
A unique path exists from the root to every other node.
左子树小于节点小于右子树,并且不能有重复出现的值。做法是我们每次比较左右节点和根节点的值,只要有一个节点不满足条件就返回FALSE
we compare the left, right node key with root key. If any of the condition cannot match the requirement, we return False.
# Definition for a binary tree node # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # @param root, a tree node # @return a boolean def testnode(self,root,minval,maxval): if root==None: return True if root.val>maxval or root.val<minval: return False return self.testnode(root.left,minval,root.val-1) and self.testnode(root.right,root.val+1,maxval) def isValidBST(self, root): minval=-3147483648 maxval=3147483648 return self.testnode(root,minval,maxval)
Validate Binary Search Tree Leetcode Python