【发布时间】:2021-02-15 09:19:40
【问题描述】:
下面的 Python 程序将给定的数组元素转换为高度平衡的二叉搜索树 (BST),并打印构造的 BST 的遍历。我想知道如何将结果保存为数组。
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def array_to_bst(array_nums):
if not array_nums:
return None
mid_num = len(array_nums)//2
node = TreeNode(array_nums[mid_num])
node.left = array_to_bst(array_nums[:mid_num])
node.right = array_to_bst(array_nums[mid_num+1:])
return node
def preOrder(node):
if not node:
return
print(node.val)
preOrder(node.left)
preOrder(node.right)
array_nums = [1,2,3,4,5,6,7]
print("Original array:")
print(array_nums)
result = array_to_bst(array_nums)
print("\nArray to a height balanced BST:")
print(preOrder(result))
【问题讨论】:
标签: python arrays binary-tree binary-search-tree