题解 | #判断是不是二叉搜索树#
判断是不是二叉搜索树
https://www.nowcoder.com/practice/a69242b39baf45dea217815c7dedb52b
# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param root TreeNode类 # @return bool布尔型 # class Solution: def isValidBST(self , root: TreeNode) -> bool: # write code here nums = self.inorderTraversal(root) for i in range(len(nums)-1): if nums[i] >= nums[i+1]: return False return True def inorderTraversal(self, root): if not root: return [] left = self.inorderTraversal(root.left) right = self.inorderTraversal(root.right) return left + [root.val] + right
二叉搜索树满足中序遍历一定是单调递增的,因此可以使用一个数组存储中序遍历的结果,然后比较前后元素的大小关系即可。