以下算法实现验证二叉树是否是二叉搜索树。采用了中序遍历,用栈实现。
import sys
class Solution:
def isValidBST(self, root: TreeNode) -> bool:
stack = []
before = -sys.maxsize
while stack or root:
while root:
stack.append(root)
root = root.left
root = stack.pop()
if root.val <= before:
return False
before = root.val
root = root.right
return True
leetcode相关题目:
面试题 04.05. 合法二叉搜索树
99. 恢复二叉搜索树