码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode 98. Validate Binary Search Tree

时间:2016-12-19 11:18:28      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:validate   min   define   less   follow   etc   tco   节点   nbsp   

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   3

Binary tree [2,1,3], return true.

Example 2:

    1
   /   2   3

Binary tree [1,2,3], return false.

对每一个节点使用一个upper bound and lower bound. 时间复杂度 O(N).

 1 def isValidBST(self, root):
 2         """
 3         :type root: TreeNode
 4         :rtype: bool
 5         """
 6         maxInt = 2147483647
 7         minInt = -2147483648
 8         
 9         return self.isBSTHelper(root, minInt, maxInt)
10         
11     def isBSTHelper(self, root, minVal, maxVal):
12         if not root:
13             return True
14         
15         if root.val <= maxVal and root.val >= minVal and self.isBSTHelper(root.left, minVal, root.val - 1) and self.isBSTHelper(root.right, root.val + 1, maxVal):
16             return True
17         else:
18             return False

 

Leetcode 98. Validate Binary Search Tree

标签:validate   min   define   less   follow   etc   tco   节点   nbsp   

原文地址:http://www.cnblogs.com/lettuan/p/6196402.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!