当前位置:   article > 正文

判断是否为搜索二叉树python实现_python 判断是不是二叉搜索树 中序遍历

python 判断是不是二叉搜索树 中序遍历

搜索二叉树为中序遍历升序判断

通过改变非递归版本的打印行为部分即可

  1. import sys
  2. class Node(object):
  3. def __init__(self,val=None):
  4. self.val = val
  5. self.left = None
  6. self.right = None
  7. #非递归版本
  8. #中序遍历把打印的时机换成比较
  9. def isBST(head):
  10. if not head:
  11. return True
  12. stack = []
  13. pre = -sys.maxsize
  14. while stack or head != None:
  15. if head != None:
  16. stack.append(head)
  17. head = head.left
  18. else:
  19. head = stack.pop()
  20. print(head.val, end=' ')
  21. if head.val>pre:
  22. pre = head.val
  23. head = head.right
  24. else:
  25. return False
  26. return True
  27. if __name__ == '__main__':
  28. head = Node(5)
  29. head.left = Node(3)
  30. head.left.left = Node(2)
  31. head.left.right = Node(4)
  32. head.right = Node(8)
  33. head.right.left = Node(6)
  34. head.right.right = Node(10)
  35. a = isBST(head)
  36. print(a)

 

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

闽ICP备14008679号