当前位置:   article > 正文

验证二叉搜索树Python解法_python算法输入root=[3,2,1]输出true

python算法输入root=[3,2,1]输出true

给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树

有效 二叉搜索树定义如下:

节点的左子树只包含 小于 当前节点的数。
节点的右子树只包含 大于 当前节点的数。
所有左子树和右子树自身必须也是二叉搜索树。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/validate-binary-search-tree
 

例:

输入:root = [2,1,3]
输出:true

解析:

中序遍历,将遍历后的值存入列表,然后对列表进行去重,排序操作,如果和原列表一致,那么代表为二叉搜索树。

  1. # Definition for a binary tree node.
  2. # class TreeNode(object):
  3. # def __init__(self, val=0, left=None, right=None):
  4. # self.val = val
  5. # self.left = left
  6. # self.right = right
  7. class Solution(object):
  8. def isValidBST(self, root):
  9. """
  10. :type root: TreeNode
  11. :rtype: bool
  12. """
  13. nums = self.search(root)
  14. return sorted(set(nums)) == nums # sorted()用来排序,set()用来去重
  15. def search(self, root): # 搜索函数
  16. if root == None: # 判空
  17. return []
  18. return self.search(root.left) + [root.val] + self.search(root.right) # 左子树 + 根 + 右子树(中序遍历)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/223005
推荐阅读
相关标签
  

闽ICP备14008679号