,可以使用深度优先搜索(DFS)或广度优先搜索(BFS)来实现。
深度优先搜索的实现思路如下:
以下是一个使用深度优先搜索实现的Python代码示例:
class Solution:
def isValidBST(self, root):
def isValid(node, lower, upper):
if not node:
return True
if node.val <= lower or node.val >= upper:
return False
return isValid(node.left, lower, node.val) and isValid(node.right, node.val, upper)
return isValid(root, float('-inf'), float('inf'))
广度优先搜索的实现思路如下:
以下是一个使用广度优先搜索实现的Python代码示例:
from collections import deque
class Solution:
def isValidBST(self, root):
if not root:
return True
queue = deque([(root, float('-inf'), float('inf'))])
while queue:
node, lower, upper = queue.popleft()
if not node:
continue
if node.val <= lower or node.val >= upper:
return False
queue.append((node.left, lower, node.val-1))
queue.append((node.right, node.val+1, upper))
return True
以上是通过检查是否存在循环来确定二叉树有效性的函数的实现方式。该函数可以用于判断给定的二叉树是否是有效的二叉搜索树。
领取专属 10元无门槛券
手把手带您无忧上云