标签:arch [] sub strong 二叉树 contain 完整 中序 .com
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:
2 / 1 3Binary tree
[2,1,3]
, return true.
Example 2:
1 / 2 3Binary tree
[1,2,3]
, return false.
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None # 先将二叉搜索树进行中序遍历,接着判断是否满足规则 class Solution(object): def isValidBST(self, root): """ :type root: TreeNode :rtype: bool """ self.ret = [] self.helper(root) for i in xrange(1, len(self.ret)): if self.ret[i] <= self.ret[i-1]: return False return True def helper(self, node): if node == None: return self.helper(node.left) self.ret.append(node.val) self.helper(node.right)
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): def isValidBST(self, root): """ :type root: TreeNode :rtype: bool """ return self.helper(root, -float("inf"), float("inf")) def helper(self, node, low, high): if node == None: return True if node.val <= low or node.val >= high: return False return self.helper(node.left, low, node.val) and self.helper(node.right, node.val, high)
LeetCode 98. Validate Binary Search Tree
标签:arch [] sub strong 二叉树 contain 完整 中序 .com
原文地址:http://www.cnblogs.com/LiCheng-/p/6828976.html