排序数组到平衡二进制搜索树没有递归

时间:2016-03-30 00:30:21

标签: java arrays algorithm recursion binary-search-tree

我在一次采访中被问到一个问题,用一个带有递归和没有递归的排序数组构建一个平衡的二叉搜索树。我能够使用递归提出一个解决方案,但没有提出没有递归的解决方案。任何人都可以在不使用递归的情况下提供此问题的解决方案吗?

1 个答案:

答案 0 :(得分:1)

您可以创建和使用自己的堆栈(例如,作为数组或链接列表),并从循环内部访问它。

数组或列表中的每个单元格都需要存储有关树的基本信息,否则这些信息将由递归函数维护。

您的递归版本中的某些信息(例如深度计数器)可能由局部变量处理。对于某些问题,您可以将所有此类信息从堆栈中移出到本地变量中;在这种情况下,您根本不需要显式堆栈......