题目:将[0,1,2,3,4,5,6,7,8,9,10]存储到二叉树,原数组有序,转换为二叉排序树。
二叉排序树的特点:当前节点的左子树上的所有节点都小于该节点,右子树上的所有节点都小于该节点。
二叉排序也称为二叉查找树。
我的实现思路:
取有序数组的中间节点作为根节点,将数组分为左右两个部分,对左右两个子数组做相同的操作,递归的实现。
图示:
1
2
3
代码实现:
def array_to_bitree(array):
#判断arr是否为空
if len(array)==0:
return BiTNode(array[0])
mid=len(array)//2