如果一个二叉树有N个节点,它的节点值是1,2,...,N,并且满足以下条件,则称其为“奇特的”:
- 每个内部节点恰好有一个大于它的后代。
- 1,2,...,N中的每个数字在树中仅出现一次。
奇特二叉树示例
4
/ \
5 2
/ \
1 3
你能否提供一个算法来生成n个节点的均匀随机好奇二叉树,其运行时间保证为O(n)?
假设你只能访问一个随机数生成器,该生成器可以为任何1 <= k <= n的范围内提供(均匀分布的)随机数。假设生成器运行时间为O(1)。
我也想看到一个O(nlogn)时间复杂度的解决方案。
请按照标记二叉树的通常定义,将不同的好奇二叉树视为不同的。