从树中选择随机节点

use*_*555 5 java random tree data-structures

我有一个树数据结构,每个节点可以有多个子节点.所以不仅有左边和右边,还有更少甚至更多.现在我想随机从这棵树中选择一个节点.对于每个节点,我知道有多少个孩子连接到它.但是我怎么能以随机的方式选择它们,统一会很棒.有任何想法吗?我找到了只有左右孩子的解决方案,但正如我所说,这在这里并不适用.

NPE*_*NPE 1

如果均匀分布很重要,您可以遍历树并使用水库采样

然而,其时间复杂度与节点数量成线性关系。