leetcode98. 验证二叉搜索树python

题目描述:

 

 

 题解:

二叉搜索树的性质是:任何一个节点的左子树中的所有节点值都小于该节点值,其右子树中所有节点值都大于当前节点值(必须满足,节点值相等也不行)。二叉搜索树的中序遍历结果是一个升序序列。

1.首先对二叉搜索树进行中序遍历,保存结果midorder

2.判断midorder是否满足升序。

注意:本来利用sorted将midorder进行排序,对比midorder和sorted后结果是否完全相同,但这种方法不适用于有相同节点值的情况。

class Solution(object):
    def isValidBST(self, root):
        midprder = self.midorder(root)
        num = len(midprder)
        for i in range(num-1):
            if midprder[i]>=midprder[i+1]:
                return False
        return True
        return True
    def midorder(self,root):
        res = []
        if root ==None:
            return res
        res = res+self.midorder(root.left)
        res.append(root.val)
        res = res+self.midorder(root.right)
        return res

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值