【发布时间】:2016-12-12 07:04:41
【问题描述】:
给你一个数字,它是二叉搜索树的根。然后你会得到一个包含 N 个元素的数组,你必须将其插入到二叉搜索树中。如果数组按排序顺序,时间复杂度为 N^2。我需要以更好的复杂性(比如 NlogN)获得相同的树结构。我尝试了很多但无法解决它。有人可以帮忙吗?
【问题讨论】:
-
您是否尝试过搜索? GIVEN "Sorted list to bst" Google 产生许多结果,例如geeksforgeeks.org/sorted-linked-list-to-balanced-bst
-
@Gene 您提供的链接是到平衡 bst 的排序链表,这不是我的问题。
-
@HansSolo:您需要生成与朴素算法生成的完全相同的链接布局,还是只需要生成有效的 BST?如果您只需要生成有效的 BST,则生成平衡 BST 的算法应该可以正常工作。
-
用小于根的元素构建一棵树,放在左边,用大于根的元素构建一棵树,放在右边。如果数组已排序,那看起来是 O(N)。
-
@PaulHankin 每次从根开始,所以如果数组是按升序或降序排序的,那将是 N^2 对吧?