有一种方法可以构建平衡的二叉搜索树吗?
例如:
例如:
1 2 3 4 5 6 7 8 9
5
/ \
3 etc
/ \
2 4
/
1
我认为有一种方法可以实现这一点,而不使用更复杂的自平衡树。否则我可以自己做,但可能已经有人做过了 :)
谢谢答复!这是最终的Python代码:
def _buildTree(self, keys):
if not keys:
return None
middle = len(keys) // 2
return Node(
key=keys[middle],
left=self._buildTree(keys[:middle]),
right=self._buildTree(keys[middle + 1:])
)