当前位置: 首页 > 后端技术 > Python

力扣-采访问题04.05,合法二叉搜索树【Python】

时间:2023-03-26 01:23:19 Python

题目LeetCode实现了一个函数,判断一棵二叉树是否为二叉搜索树。示例1:输入:2/\13输出:true示例2:输入:5/\14/\36输出:false解释:输入为:[5,1,4,null,null,3,6].根节点的值为5,但其右子节点的值为4。思想递归二叉搜索树:根节点的值大于左子树节点的最大值,小于右子树节点的最小值。左右子树也必须满足二叉搜索树的性质。CodePython3#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,x):#self.val=x#self.left=None#self.right=Noneclass解决方案:defisValidBST(self,root:TreeNode)->bool:returnself.isValid(root,None,None)#helperfunctiondefisValid(self,root:TreeNode,min_:TreeNode,max_:TreeNode):如果不是root:如果min_!=None和root则返回True。val<=min_.val:如果max_!=None且root.val>=max_.val:返回False返回False返回self.isValid(root.left,min_,root)和self.isValid(root.right,root,max_)链接到GitHub