当前位置:   article > 正文

Python-判断是否是搜索(查找)二叉树_python验证二叉树是否是二叉搜索树

python验证二叉树是否是二叉搜索树
  1. # coding=utf-8
  2. """
  3. question:
  4. 有一个整数类型的列表,判断该列表是否为对应二叉搜索(查找)树1的后序遍历结果
  5. 搜索二叉树的父节点值大于其左子树的所有值,小于其右子树的所有值
  6. """
  7. def judge(nums):
  8. if not nums:
  9. return False
  10. elif len(nums) == 1: # 递归出口
  11. return True
  12. root = nums[-1] # 根节点的值
  13. pos = 0 # 根节点的位置
  14. for item in nums: # 找根节点位置
  15. if item > root:
  16. break
  17. pos += 1
  18. for item in nums[pos:]: # 剩下的都得比 root 大
  19. if item < root:
  20. return False
  21. if pos == 0 or pos == len(nums): # 只有左子树或右子树
  22. return judge(nums[:-1])
  23. else: # 既有左子树也有右子树
  24. return judge(nums[0:pos]) and judge(nums[pos:-1])
  25. if __name__ == '__main__':
  26. l = [1, 4, 7, 6, 3, 13, 14, 10, 8]
  27. print(judge(l))

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号